在运行“docmd.openquery sqlchaxun”时会报错,“sqlchaxun”是一条select的查询语句?

milerzhang 2007-09-03 06:12:33
请高手指点,小弟刚用ACCESS。谢谢大家了!
...全文
532 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhh715 2007-09-11
  • 打赏
  • 举报
回复
说了你现在的程序只是打开了一个查询而已
用的到结果要用ADO以记录集的方式

'DoCmd.OpenQuery "sqlchaxun
上面的不变
Dim conn As ADODB.Connection
dim rs as ADODB.Recordset
dim strTemp as string
Set Conn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open sqlchaxun,CurrentCon, adOpenDynamic, adLockOptimistic
if not rs.EOF then

strTemp =rs("表中的字段名称") '这里是取查询的字段值(我这里是文本类型,如果你要取的
'字段类型是数字的话,直接定义变量,然后赋值就可以了
end if
如果不行的话,请调试出sqlchaxun内容,检查是否有误
估计就是你的sqlchaxun内容出现问题了

或者你在窗体中摆一个子窗体(来源设置为你的查询sqlchaxun)
按钮事件执行完后刷新子窗体就可以现实数据了
milerzhang 2007-09-11
  • 打赏
  • 举报
回复
楼上的谢谢了!运行时不会报错了!可还有一个问题:就是运行完,不会显示查询结果?怎么样才可以显示出,查询结果呢?谢谢了!
OracleRoob 2007-09-11
  • 打赏
  • 举报
回复
在动态修改完查询的SQL串后,再运行查询就可以查看结果了,如:


DoCmd.OpenQuery "你的查询名"
hhh715 2007-09-10
  • 打赏
  • 举报
回复
'DoCmd.OpenQuery "sqlchaxun
上面的不变
Dim conn As ADODB.Connection
dim rs as ADODB.Recordset
dim strTemp as string
Set Conn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open sqlchaxun,CurrentCon, adOpenDynamic, adLockOptimistic
if not rs.EOF then

strTemp =rs("表中的字段名称") '这里是取查询的字段值(我这里是文本类型,如果你要取的
'字段类型是数字的话,直接定义变量,然后赋值就可以了
end if
如果不行的话,请调试出sqlchaxun内容,检查是否有误
估计就是你的sqlchaxun内容出现问题了
OracleRoob 2007-09-10
  • 打赏
  • 举报
回复

你的sqlchaxun是一个字符型变量


应该创建一个查询,名称为:sqlchaxun

新建“查询”,保存查询的名为“sqlchaxun”,然后再执行你的代码试试。

OracleRoob 2007-09-09
  • 打赏
  • 举报
回复
你的sqlchaxun是一个字符型变量


应该定义一个查询,名称为:sqlchaxun
milerzhang 2007-09-09
  • 打赏
  • 举报
回复
Private Sub chaxun_Click()
Dim cubdb As Database
Dim zdm1 As String
Dim zdm2 As String
Dim zdm3 As String
Dim zdm4 As String
Dim cs1 As String
Dim cs2 As String
Dim cs3 As String
Dim cs4 As String
Dim kssj As Date
Dim jssj As Date
Dim rs1 As Recordset
Dim sqlchaxun As String
Dim qry As QueryDef
Set qry = CurrentDb.QueryDefs("sqlchaxun")
sqlchaxun = ""
sqlchaxun = "select * from sbb"
zidm1.SetFocus
If zidm1.Text <> "" Then
zdm1 = zidm1.Text
chas1.SetFocus
If chas1.Text <> "" Then
cs1 = chas1.Text
sqlchaxun = sqlchaxun + " where " + zdm1 + " = " + cs1
zidm2.SetFocus
If zidm2.Text <> "" Then
zdm2 = zidm2.Text
chas2.SetFocus
If chas2.Text <> "" Then
cs2 = chas2.Text
sqlchaxun = sqlchaxun + "and " + zdm2 + " = " + cs2
zidm3.SetFocus
If zidm3.Text <> "" Then
zdm3 = zidm3.Text
chas3.SetFocus
If chas3.Text <> "" Then
cs3 = chas3.Text
sqlchaxun = sqlchaxun + "and " + zdm3 + " = " + cs3
zidm4.SetFocus
If zidm4.Text <> "" Then
zdm4 = zidm4.Text
chas4.SetFocus
If chas4.Text <> "" Then
cs4 = chas4.Text
sqlchaxun = sqlchaxun + "and " + zdm3 + " = " + cs3
Else
MsgBox "请输入条件。", vbOKOnly, "设备管理系统"
Exit Sub
End If
End If
Else
MsgBox "请输入条件。", vbOKOnly, "设备管理系统"
Exit Sub
End If
End If
Else
MsgBox "请输入条件。", vbOKOnly, "设备管理系统"
Exit Sub
End If
End If
Else
MsgBox "请输入条件。", vbOKOnly, "设备管理系统"
Exit Sub
End If
End If
kaissj.SetFocus
If kaissj.Text <> "" Then
kssj = kaissj.Text
jiessj.SetFocus
If jiessj.Text <> "" Then
jssj = jiessj.Text
chas1.SetFocus
If chas1.Text <> "" Then
sqlchaxun = sqlchaxun + "and 购买时间 between " + CStr(kssj) + " and " + CStr(jssj)
Else
sqlchaxun = sqlchaxun + " where 购买时间 between " + CStr(kssj) + " and " + CStr(jssj)
End If
End If
End If
MsgBox sqlchaxun
qry.sql = sqlchaxun
End Sub

程序运行到:Set qry = CurrentDb.QueryDefs("sqlchaxun")时报错:
运行时错误‘3265’:这个集合中找不到此项目。
OracleRoob 2007-09-08
  • 打赏
  • 举报
回复
--参考:

"添加DAO引用

"-->VBA代码窗口

"-->“工具”菜单

"-->引用

"-->选中“Microsoft DAO 3.6 Object Library”

Public Sub Test()

Dim qry As QueryDef

Set qry = CurrentDb.QueryDefs("查询1")

qry.SQL = "select * from 表名 where 年龄>10"
OracleRoob 2007-09-08
  • 打赏
  • 举报
回复
或者动态修改某个查询的SQL串,需要引用DAO。
OracleRoob 2007-09-08
  • 打赏
  • 举报
回复
你的变量sqlchaxun中是select 语句,不能执行DoCmd.RunSQL

用记录集打开。
milerzhang 2007-09-08
  • 打赏
  • 举报
回复
以上就是我的代码,请高手指点。谢谢!
milerzhang 2007-09-08
  • 打赏
  • 举报
回复
Dim cubdb As Database
Dim zdm1 As String
Dim zdm2 As String
Dim zdm3 As String
Dim zdm4 As String
Dim cs1 As String
Dim cs2 As String
Dim cs3 As String
Dim cs4 As String
Dim sqlchaxun As String
Set cubdb = CurrentDb
Dim rs1 As Recordset
'Set rs = YourObject
sqlchaxun = ""
sqlchaxun = "select * from sbb"
zidm1.SetFocus
If zidm1.Text <> "" Then
zdm1 = zidm1.Text
chas1.SetFocus
If chas1.Text <> "" Then
cs1 = chas1.Text
sqlchaxun = sqlchaxun + " where " + zdm1 + " = " + cs1
zidm2.SetFocus
If zidm2.Text <> "" Then
zdm2 = zidm2.Text
chas2.SetFocus
If chas2.Text <> "" Then
cs2 = chas2.Text
sqlchaxun = sqlchaxun + "and" + zdm2 + " = " + cs2
zidm3.SetFocus
If zidm3.Text <> "" Then
zdm3 = zidm3.Text
chas3.SetFocus
If chas3.Text <> "" Then
cs3 = chas3.Text
sqlchaxun = sqlchaxun + "and" + zdm3 + " = " + cs3
zidm4.SetFocus
If zidm4.Text <> "" Then
zdm4 = zidm4.Text
chas4.SetFocus
If chas4.Text <> "" Then
cs4 = chas4.Text
sqlchaxun = sqlchaxun + "and" + zdm3 + " = " + cs3
Else
MsgBox "请输入条件。", vbOKOnly, "设备管理系统"
Exit Sub
End If
End If
Else
MsgBox "请输入条件。", vbOKOnly, "设备管理系统"
Exit Sub
End If
End If
Else
MsgBox "请输入条件。", vbOKOnly, "设备管理系统"
Exit Sub
End If
End If
Else
MsgBox "请输入条件。", vbOKOnly, "设备管理系统"
Exit Sub
End If
End If
'zdm1 = zidm1.Text
MsgBox sqlchaxun
'DoCmd.OpenQuery "sqlchaxun"

End Sub
OracleRoob 2007-09-06
  • 打赏
  • 举报
回复
DoCmd.RunSQL 后面的变量中的SQL串,必须是操作性查询,如:insert 、delete、update,不能是select

DoCmd.OpenQuery 后面必须是一个查询名
milerzhang 2007-09-06
  • 打赏
  • 举报
回复
首先,谢谢楼上的!
我用了你的方法,会提示:语法错误,编辑错误。
hhh715 2007-09-06
  • 打赏
  • 举报
回复
你把你完整的代码贴出来
hhh715 2007-09-05
  • 打赏
  • 举报
回复
你可以放在按钮的单击事件中测试
注意要引用ADO
hhh715 2007-09-05
  • 打赏
  • 举报
回复
Dim Conn As ADODB.Connection
dim sqlchaxun as string

Set Conn = CurrentProject.Connection

sqlchaxun = "你的查询语句 "
Conn .Execute sqlchaxun
OracleRoob 2007-09-04
  • 打赏
  • 举报
回复
DoCmd.OpenQuery "sqlchaxun"



这里 sqlchaxun 必须是查询名,而不是你定义的变量名。
milerzhang 2007-09-04
  • 打赏
  • 举报
回复
请高手指点!谢谢了!
milerzhang 2007-09-04
  • 打赏
  • 举报
回复
“sqlchaxun”是string变量,里面复制一条sql查询语句。
加载更多回复(6)
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧