熟悉VB操作ACCESS数据库的高手急救
各位大虾,我想用VB查询数据库中的某个字段,我写的部分代码是这样的,但是老是报“from子句语法错误”,大家帮我啊,在线等着。Private Sub 查询_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
Dim A As String
A = Text1.Text
conn.Open "PROVIDER=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\number.mdb"
sql = "select * from number"
rs.Open sql, conn
。。。。。
。。。。。
rs.Close
Set rs = Nothing
End Sub --------------------编程问答-------------------- 请检查表名称。
如果实在没有其他名字可以用,请给它加上[],如[number] --------------------编程问答-------------------- 加上括号也不行啊,我用MsgBox打出来SQL语句没有问题的,但是就是说FROM子句语法错误,怎么办啊?高手帮我看看我连ACCESS数据库可以这样写吗?与ODBC数据源有关系吗? --------------------编程问答-------------------- Private Sub 查询_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
Dim A As String
A = Text1.Text
conn.Open "PROVIDER=Microsoft.jet.OLEDB.4.0;data source= " & App.Path & "\number.mdb "
sql = "select * from number " 要具体到number.mdb中的表的名称 。。。。。
。。。。。
rs.Close
Set rs = Nothing
End Sub --------------------编程问答-------------------- 楼上的兄弟,我写了啊,你有环境帮我运行一下吗?搞了一下午了
Private Sub 查询_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
Dim A As String
A = Text1.Text
conn.Open "PROVIDER=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\number.mdb"
sql = "select * from number where 车号=" & A
MsgBox sql
rs.Open sql, conn
。。。。。。。
rs.Close
Set rs = Nothing
End Sub --------------------编程问答-------------------- 有哪位兄弟帮我解决了送100分啊,急!就是用VB操作ACCESS,一个很简单的查询功能。字段就一个,车号,文本框中输入一个车号,查询,如果数据库中没有这个号码,显示无此号码,否则提示存在。就这么简单一个。 --------------------编程问答-------------------- sql= "select * from [number] where 车号= '"& A &"'"
请在英文状态下输入单号等号等字符 --------------------编程问答-------------------- 请问楼上大虾,如果我这个程序需要具有较强的实用性,我用打包工具打包就可以了吗?另外,是不是需要在需要运行的电脑上都设置DSN什么的?谢谢 --------------------编程问答-------------------- 是的。但是你在打包时应当将 number.mdb 文件打进去:在向导的包含文件一屏上单击添加按钮,将该文件加入。 --------------------编程问答-------------------- 试试下面的代码
Private Sub Command1_Click()
Dim sqlstr As String
Dim db As ADODB.Connection
Set db = New ADODB.Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" & App.Path & "\number.mdb;"
sqlstr = "select * from [number] where 车号 like '" + Trim(Text1.Text) + "' "
Set adoPrimaryRS = New ADODB.Recordset
adoPrimaryRS.Open sqlstr, db, adOpenStatic, adLockOptimistic
Set grdDataGrid.DataSource = adoPrimaryRS
mbDataChanged = False
End Sub --------------------编程问答-------------------- 还要定义一个变量
Dim adoPrimaryRS As ADODB.Recordset --------------------编程问答-------------------- 你那条SQL语句是从数据库从,应该指定数据库中的哪个表
"Select * From 数据表名称(本地不用指明数据库名称)
数据库名称.数据表名称 --------------------编程问答-------------------- Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\数据库.mdb"
sql = "select * from 您的表名 Where 字段=" & Text1.Text
rs.Open sql, conn
If Not rs.BOF And Not rs.EOF Then
MsgBox "数据存在."
Else
MsgBox "数据不存在"
End If
rs.Close
Set rs = Nothing
End Sub
最近刚好在写很数据库有关的,我自己试过了,可以正常使用.填入你自己的资料就可以了,记得去掉多余的空格,发表帖子总会在引号旁边自动加上空格.
需引用"Microsoft ActivbX Data Objects 2.5 Library" --------------------编程问答-------------------- 由于最近比较穷,急需分数,本想多加点注释进去的,但看了半天感觉不出哪句你会看不懂,还是算了,有不明白的你再说吧.
如果要省点代码这样写也行:
If rs.BOF And rs.EOF Then
MsgBox "数据不存在"
Else
MsgBox "数据存在."
End If
不过看了半天还是看不出你哪里写错了,感觉都没问题的. --------------------编程问答-------------------- 支持1楼的.
两种方法,1:改一下你的表number的名称,比如:number1;
2:请加[],如:SELECT * FROM [number] --------------------编程问答-------------------- 是不是Number这个名字的问题以? --------------------编程问答-------------------- 楼主,是number这个表名的关系,你换个表名试试
不要使用类似user这样的表名
--------------------编程问答-------------------- sql="select * from number " 中number是非法表名
改成
sql="select * from [number]" 就可以了 --------------------编程问答-------------------- rs.Open sql,conn
不要偷懒,加上参数
rs.Open sql,conn,1,1
--------------------编程问答-------------------- 谢谢大家,结贴 --------------------编程问答-------------------- 如何给分啊?我给了分数,然后按什么按钮? --------------------编程问答-------------------- number
这个是关键字,不能用的,你换个表名称吧 --------------------编程问答-------------------- 对于给分的问题的答案:给了分之后,按下回车就OK啦! --------------------编程问答-------------------- number不能作为表名,是关键字
补充:VB , 数据库(包含打印,安装,报表)