乐筑天下

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

VBA 中的 SQL 语句在 Access 中

[复制链接]

18

主题

55

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-6-26 18:25:27 | 显示全部楼层 |阅读模式
我可能做错了,但是...
我想我需要帮助来创建一个SQL字符串,它将从一个表中打开一个记录,查找某些字段并将它们应用到我创建的变量中。
我一直收到数据转换错误...
我的代码:
Dim Job as string
Dim Builder as string
Dim Plan as string
Job = MeJobEntry.value '自定义对话框job search with TextBox ' job entry '
SQLstring = " Select * From[Set Up]Where[Set Up]。[作业编号]= ' " & Job & " ';"
‘这在我的Cad VBA中有效,我猜访问是不同的?
Set Jobrs = current db . open recordset(sqlstring,Dynaset)
“我在此处得到转换错误....我假设我的Sql字符串是错误的...
我让我的表单运行一个查询,并返回JObEntry文本框中任何JOb#的记录。
Access VBA使用语句...
Docmd.openquery stDocName,AcNormal,AcReadOnly
我可以从这里访问其他字段并将它们应用到我的变量吗??
我是access的新手,所以我可能会偏离正道....
哦,我希望这是这个问题的正确区域...

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-6-26 21:48:50 | 显示全部楼层
除了错字(工作和工作?)也许您在db中的数据类型并不都是“文本”类型??
此外,只是观察,在不同的api中创建sql查询时,列名中有空格可能是危险的。
只是一些尝试'直到一些真正知道那里在做什么的人出现
回复

使用道具 举报

18

主题

55

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-6-27 06:42:47 | 显示全部楼层
谢谢,
我检查了表中的作业号数据类型,它是一个文本字段。
我还尝试在字符串变量周围使用'mark,但没有成功...
即。Sql="Select*From[Set Up]在哪里[Set Up]。[作业编号] = ' " & 作业 & " ';"
我使用空格来显示'mark and'mark。我也试过没有......
数据库是10或11年前创建的,我不想进去开始乱搞这样的东西......
我正试图让他们将他们的许多独立实用程序升级到一个集中式系统中...但是在那之前......
我会一直努力解决这个问题,直到有人给我开灯。
回复

使用道具 举报

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

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

使用道具 举报

5

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
30
发表于 2006-6-27 10:30:41 | 显示全部楼层
单引号和作业号之间不能有空格。当它运行时,结果是:
"Select*from[Set Up]where[Set Up].[作业号]='作业';"
并且dBase中可能没有与之匹配的作业(作业号中有空格)。
回复

使用道具 举报

6

主题

94

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2006-6-27 11:01:30 | 显示全部楼层
第一个问题…此代码是在Acad中打开Access数据库还是在Access中
假设您正在访问VBA:
将作业作为字符串调整
将生成器作为字符串调整计划作为字符串调整作业作为DOA。记录集
Job=Me.JobEntry。值为“自定义对话框作业搜索”,文本框为“作业条目”
SQLstring=“从[Set-Up]中选择*,其中[Set-Up]。[Job Number]=”“&Job&;”
调试。始终将“SQLString”打印为该值。如果您构建一个SQL字符串并在中间窗口中查找结果,
“这在我的Cad VBA中工作,我想访问是不同的吗?”
将作业设置为当前数据库。openrecordset(sqlstring,dbOpenDynaset)
您可以通过Docmd访问您的数据库,但我警告您,这是一个旧的传统,对于某些命令,它不会同步运行
您还可以使用DAO、ADO和SQL
为了最大限度地提高性能,请在记录集中使用SQL,通过WHERE子句筛选出所需的特定记录。瓶颈是将数据从数据库传输到应用程序。
回复

使用道具 举报

18

主题

55

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-6-27 17:14:05 | 显示全部楼层
我关于空格的注释是关于这个论坛上的句子…
我添加了一个空格以便更容易阅读…我的代码中没有空格…
,感谢Dnereb…
我的整个问题是,我的Set记录集语句中有dynaset,而不是dbOpenDynaset的
<谢谢大家的帮助
回复

使用道具 举报

6

主题

94

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 23:17 , Processed in 1.319751 second(s), 68 queries .

© 2020-2025 乐筑天下

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