当前位置:编程学习 > VB >>

熟悉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 ,  数据库(包含打印,安装,报表)
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,