设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2907|回复: 8
打印 上一主题 下一主题

[其它] 急!在线求解,2个ACCESS的简单小问题!!

[复制链接]
跳转到指定楼层
1#
发表于 2006-4-8 21:35:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、我在QUERY中使用了[Forms]![Main]![Text1]这个表达式,当此控件打入值时,直接打开此QUERY是有正确结果出来的,可是在程序中用OpenRecordset打开此QUERY时,总是提示错误

“参数不足,期待是4”" Run-time error:3061"

为何?直接打开此QUERY却能显示出来!





2、控制EXCEL的排版时,有如下一段代码:

excWs为worksheets 对象,此对象都是正确的,因为前面的数据都已正确填入。

    With excWs.Range("B1:B4")
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With


执行失败,提示错误“无法设置RANGE类的方法”



为什么?谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-4-8 22:33:00 | 只看该作者
回答你第一个问题,这种类型的表达式被称为Criteria,是Access特有的,你在Access的查询中使用,Access在查询前会先对Criteria求值,如果你直接在Recordset的方法中使用,无论是DAO还是ADO,都不是Access特有的,也不能解释Criteria,所以无法对此求值。
3#
 楼主| 发表于 2006-4-8 23:26:00 | 只看该作者
那如果遇到这种情形,应如何解决?
4#
发表于 2006-4-8 23:29:00 | 只看该作者
以下是引用dazzling在2006-4-8 15:26:00的发言:
那如果遇到这种情形,应如何解决?

VBA中获取值,然后作为字符串并入SQL语句。
5#
发表于 2006-4-9 01:36:00 | 只看该作者
第2个问题:

控制EXCEL的排版时,可以用懒人的办法,在Excel中录制宏,再切换到VBE界面查看代码.

也许你就可以找到问题所在了.
6#
发表于 2006-4-9 07:07:00 | 只看该作者
第二个问题

  With excWs.Range("B1:B4")
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With

把上面那一段换这两句
excWs.Range(excWs.Cells(1, 2), excWs.Cells(4, 2)).HorizontalAlignment = xlHAlignRight

excWs.Range(excWs.Cells(1, 2), excWs.Cells(4, 2)).VerticalAlignment = xlVAlignCenter
7#
发表于 2006-4-9 16:52:00 | 只看该作者
第1问:或保留现在的参数查询,代码中要声明一个命令对象,再给它的参数赋值,再set rst=……

我的一段代码:

    ' 使用一个参数打开命令对象。

    cmd.ActiveConnection = cnn
    cmd.CommandText = "盘存记录表查询"
    cmd.CommandType = adCmdStoredProc
   
    ' 获取参数值并追加参数。

    Set prm = cmd.CreateParameter("per", adInteger, adParamInput)
    cmd.Parameters.Append prm
    prm.Value = Me.盘存ID

    ' 通过执行命令创建记录集。
    Set rst = cmd.Execute
8#
 楼主| 发表于 2006-4-9 19:24:00 | 只看该作者
第1个问题,偶已经解决(通过语句中直接使用SQL)。

关于第2个问题,偶不是很明白:EXCEL中录制的宏,为何不可直接拿来当语句使用呢?

需要什么转换吗?有何规则?
9#
发表于 2006-4-10 05:10:00 | 只看该作者
关于第2个问题,偶不是很明白:EXCEL中录制的宏,为何不可直接拿来当语句使用呢?



需要什么转换吗?有何规则?

对于这个问题,我现在也说不清楚。我是在编写利用记录集从access转换数据到excel时使用上面的代码,程序运行正常;其他的我就没有深入研究了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-7 06:25 , Processed in 0.105028 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表