MickD 发表于 2006-6-26 18:25:27

Access中VBA中的SQL语句

我可能做错了,但是…
我想我需要帮助创建一个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'我是新来的,所以我很可能偏离了方向

白菜班 发表于 2006-6-26 21:48:50

除了打字错误(工作和工作?)可能数据库中的数据类型不全是#039;文本#039;类型
另外,观察一下,当在不同的api中创建sql查询时,列名中有空格可能是危险的;s、 只是尝试一下#039;直到一些真正知道自己在做什么的人出现

andylaufans 发表于 2006-6-27 06:42:47

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

豆花 发表于 2006-6-27 07:42:52

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

东北人 发表于 2006-6-27 10:30:41

单引号和作业编号之间不能有空格。运行时,结果为:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&引用;从[设置]中选择*,其中[设置]。[作业编号]='作业#039&引用
可能没有't数据库中与之匹配的作业(作业编号中有空格)。

男孩女孩 发表于 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子句过滤出需要的特定记录。瓶颈是将数据从数据库传输到应用程序。

白二少 发表于 2006-6-27 17:14:05

我关于空格的注释参考了这个论坛上的一句话…
我添加了一个空格,这样更容易阅读…我的代码中没有空格…
,谢谢Dnereb….
整个问题是,我在Set-recordset语句中使用了dynaset,而不是dbOpenDynaset的
谢谢大家的帮助

芝麻茶馆 发表于 2006-6-28 15:45:07

注意:如果出于兼容性原因使用DAO,请务必将记录集声明为DAO。Access的某些版本默认使用ADO
通过currentdb对象(DAO)分配记录集时不及格
页: [1]
查看完整版本: Access中VBA中的SQL语句