乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 110|回复: 7

Access中VBA中的SQL语句

[复制链接]

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-6-26 18:25:27 | 显示全部楼层 |阅读模式
我可能做错了,但是…
我想我需要帮助创建一个SQL字符串,它将从表中打开一个记录,查找某些字段,并将它们应用于我创建的变量
我一直收到一个数据转换错误…
我的代码:
Dim Job as string
Dim Builder as stringDim Plan as string。值#039;带有文本框的自定义对话框JobSearch'JobEntry#039
SQLstring="从[设置]中选择*,其中[设置]。[作业编号]=&#039&引用&工作和&引用';&引用
&039;这在我的Cad VBA中工作,我想访问是不同的
设置作业=当前dB。openrecordset(sqlstring,Dynaset)
&039;我在这里得到了转换错误…我假设我的Sql字符串是错误的…
我确实让我的表单运行一个查询,并带回JObEntry文本框中任何作业的记录
Access VBA使用语句…
Docmd。openquery stDocName、AcNormal、AcReadOnly我可以从此访问其他字段并将其应用于我的变量吗
I'我是新来的,所以我很可能偏离了方向
回复

使用道具 举报

0

主题

7

帖子

4

银币

初来乍到

Rank: 1

铜币
8
发表于 2006-6-26 21:48:50 | 显示全部楼层
除了打字错误(工作和工作?)可能数据库中的数据类型不全是#039;文本#039;类型
另外,观察一下,当在不同的api中创建sql查询时,列名中有空格可能是危险的;s、 只是尝试一下#039;直到一些真正知道自己在做什么的人出现
回复

使用道具 举报

0

主题

10

帖子

5

银币

初来乍到

Rank: 1

铜币
11
发表于 2006-6-27 06:42:47 | 显示全部楼层
谢谢,
我在表中检查了作业编号数据类型,它是一个文本字段&nbsp
我还试着使用'在字符串变量周围做标记,运气不好…
ie Sql="从[设置]中选择*,其中[设置]。[作业编号]=&#039&引用&工作和&引用';&引用
我用空格表示'标记和“;马克 本人'我也尝试了不使用DB的情况;是10年或11年前创建的,我'我不喜欢进去,开始胡闹这样的事情;我试图让他们将其许多独立的实用程序升级到一个集中系统……但在那之前;我会一直想办法,直到有人给我指示为止
回复

使用道具 举报

0

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
12
发表于 2006-6-27 07:42:52 | 显示全部楼层
我发现一个有用的技巧是打开一个新的查询并转到SQL视图 复制并粘贴sql语句,用实际条目替换作业变量 如果在调用字段等时出现任何错误,这可能会对您有所帮助;进行任何必要的更改以使其工作,然后将SQL代码剪切并粘贴回VBA,用变量替换文本。
回复

使用道具 举报

5

主题

16

帖子

8

银币

初来乍到

Rank: 1

铜币
39
发表于 2006-6-27 10:30:41 | 显示全部楼层
单引号和作业编号之间不能有空格。运行时,结果为:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&引用;从[设置]中选择*,其中[设置]。[作业编号]='作业#039&引用
可能没有't数据库中与之匹配的作业(作业编号中有空格)。
回复

使用道具 举报

0

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
6
发表于 2006-6-27 11:01:30 | 显示全部楼层
第一个问题……这段代码是在Acad中打开Access数据库还是在Access中
假设您在Access VBA中:Dim Job as string<dimbuilderasstringDim Plan as string
Dim jobs as DOA。记录集Job=Me.JobEntry。值#039;带有文本框的自定义对话框JobSearch&#039;JobEntry#039
SQLstring=&quot;从[设置]中选择*,其中[设置]。[作业编号]=&#039&引用&amp;就业与就业&引用';&引用
调试。打印SQLString&#039;如果您构建一个SQL字符串,并在中间窗口中查找结果,则始终是这样;这在我的Cad VBA中工作,我想访问是不同的
设置作业=当前dB。openrecordset(sqlstring,dbOpenDynaset)
您可以通过Docmd访问数据库,但我警告您&#039;这是一个古老的传统,它没有一些命令#039;t同步运行
您还可以使用DAO、ADO和SQL
为了最大限度地提高性能,请在记录集中使用SQL,用WHERE子句过滤出需要的特定记录。瓶颈是将数据从数据库传输到应用程序。
回复

使用道具 举报

0

主题

9

帖子

4

银币

初来乍到

Rank: 1

铜币
11
发表于 2006-6-27 17:14:05 | 显示全部楼层
我关于空格的注释参考了这个论坛上的一句话…
我添加了一个空格,这样更容易阅读…我的代码中没有空格…
,谢谢Dnereb….
整个问题是,我在Set-recordset语句中使用了dynaset,而不是dbOpenDynaset的
谢谢大家的帮助
回复

使用道具 举报

0

主题

10

帖子

6

银币

初来乍到

Rank: 1

铜币
11
发表于 2006-6-28 15:45:07 | 显示全部楼层
注意:如果出于兼容性原因使用DAO,请务必将记录集声明为DAO。Access的某些版本默认使用ADO
通过currentdb对象(DAO)分配记录集时不及格
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 00:11 , Processed in 0.742155 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表