设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 请问这种表达代码上该怎么写

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-28 12:34:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim strfrmName As String    'strfrmName是窗体名
strfrmName = Screen.ActiveForm.Name
如果要用strfrmName来表达Forms!窗体名,则代码上怎么写呢?
在此先谢了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-1-28 13:27:38 | 只看该作者
本帖最后由 todaynew 于 2011-1-28 13:35 编辑

Dim strfrmName As String    'strfrmName是窗体名
strfrmName = Screen.ActiveForm.Name
forms(strfrmName).caption="某工艺管理窗体"
forms(strfrmName).controls("某控件名").value=12345
3#
 楼主| 发表于 2011-1-29 13:12:36 | 只看该作者
那请看这段代码:

strfrmName = Screen.ActiveForm.Name
sql = "SELECT工件,Φ直径,厚度,重量,材料 INTO tblzhichenjigou1 FROM tblzhichenjigou WHERE tblzhichenjigou.[工件]=Forms(strfrmName)!sub0.Form!sub0.form!cbozhichen"
   
DoCmd.RunSQL sql

以上代码在运行中没有反应,如果将Forms(strfrmName)改为Forms!窗体名,则代码就正确运行,并显示正确结果,这是为什么呢。我要想用Forms(strfrmName)来显示正确结果,应该怎么处理呢。
4#
发表于 2011-1-29 14:53:32 | 只看该作者
本帖最后由 todaynew 于 2011-1-29 15:04 编辑

1、反引号前移至等号后。
2、工件如果是文本的话,应该用单引号。
3、DoCmd.RunSQL sql 肯定不对,因为这个语句是用来执行追加、更新等查询的,选择查询不能这样用法。如果是将这个查询作为某个窗体的数据源或者是作为组合框、列表框的数据源的话,应该用数据源赋值的语句。如果是修改查询的话,那就用修改查询的语句。



5#
发表于 2011-1-29 18:43:33 | 只看该作者
Forms(strfrmName)属于VBA的语法,不能在SQL中用。另外引用子窗体中的控件,可以不用写明.Form属性(最古老的版本除外)

strfrmName = Screen.ActiveForm.Name
sql = "SELECT [工件],[Φ直径],[厚度],[重量],[材料] INTO tblzhichenjigou1 FROM tblzhichenjigou WHERE tblzhichenjigou.[工件]='" & Forms(strfrmName)!sub0!sub0!cbozhichen & "'"
6#
 楼主| 发表于 2011-1-30 12:44:29 | 只看该作者
谢谢楼上的两位朋友,我的问题解决了,并且学到了一些东西。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 17:22 , Processed in 0.147776 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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