注册 登录
编程论坛 VB6论坛

在VB中调用access数据库时出现错误

胡杨_aks 发布于 2018-05-23 12:53, 3294 次点击

        Dim Conn As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        Conn.ConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\备件管理系统\equipmentDB.mdb;Persist Security Info=False"
        Conn.Open()
        strACC = "select * from user where User='&UserName&'"
        Rs.Open(strACC, Conn, 1, 1)   '运行到此出错

16 回复
#2
胡杨_aks2018-05-23 13:04
在VB中调用access数据库时出现错误

Dim Conn As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        Conn.ConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\备件管理系统\equipmentDB.mdb;Persist Security Info=False"
        Conn.Open()
        strACC = "select * from user where User='&UserName&'"
        Rs.Open(strACC, Conn, 1, 1)   '运行到此出错

     出现System.Runtime. HResult=0x80错误。
#3
胡杨_aks2018-05-23 13:06
我用的是Visual Studio 2017
数据库是Access 2003
#4
胡杨_aks2018-05-23 13:08
求高手赐教!
#5
wds12018-05-23 14:08
我一般是这么调用的
dim cn As New ADODB.Connection
dim rs As New Recordset
Conn1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & app.path & "\film.mdb"'此条语句根据不同版本不同
Config1 = "select * from config" '此变量为查询语句

cn.Open Conn1  '连接
rs.Open Config1, cn, 1, 1'查询

if rs.eof then
  '没查到记录
else
  for i=1 to rs.recordcount
  '具体操作
  next
endif
#6
胡杨_aks2018-05-23 14:57
谢谢!我试一下再告诉您。
#7
胡杨_aks2018-05-23 16:24
您好!
    还是不行。出现下列错误:

System.Runtime.“FROM 子句语法错误。”

#8
胡杨_aks2018-05-23 16:53
求高手赐教!
   
    在VB中调用access数据库时出现错误。我用的是Visual Studio 2017
数据库是Access 2003

        Dim Conn As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        Conn.ConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\备件管理系统\equipmentDB.mdb;Persist Security Info=False"
        Conn.Open()
        strACC = "select * from user where User='&UserName&'"
        Rs.Open(strACC, Conn, 1, 1)   '运行到此出错

      System.Runtime.“FROM 子句语法错误。”
#9
kbtwhg2018-05-23 16:56
Dim Conn As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        Conn.ConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\备件管理系统\equipmentDB.mdb;Persist Security Info=False"
        Conn.Open()
        strACC = "select * from user where User='"& UserName & "'"
        Rs.Open(strACC, Conn, 1, 1)

[此贴子已经被作者于2018-5-23 16:58编辑过]

#10
kbtwhg2018-05-23 16:58
'&UserName&'语法错误
应为'"& UserName &"'
#11
胡杨_aks2018-05-23 17:37
是的,我输入错了。还是不行!

求高手赐教!
   
    在VB中调用access数据库时出现错误。我用的是Visual Studio 2017,数据库是Access 2003,数据库名为:equipmentDB.mdb,其中一张表名:user,表中只有二个字段:loginName和password。我做了一个登录窗口,有两个文本框:TextBox1和TextBox2,分别输入:admin和123456,与库中的用户名和密码比对,然后登录。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim rsStr As String
        Dim Conn As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        Conn.ConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\备件管理系统\equipmentDB.mdb;Persist Security Info=False"
        Conn.Open()
        strACC = "select * from user where loginName='"&TextBox1.text&"'"
        Rs.Open(strACC, Conn, 1, 1)   '运行到此出错

        下面是一些比对语句,略。。。。

End Sub

      System.Runtime.“FROM 子句语法错误。”

#12
ZHRXJR2018-05-23 18:01
strACC = "select * from user where User='&UserName&'"
        Rs.Open(strACC, Conn, 1, 1)   '运行到此出错
-------------------------------------------------------
在 VB60中可以这样
strACC = "select * from user where User='" & UserName & "'"    '注意空格
        Rs.Open strACC, Conn, 2, 2   '这样就不会出错了



#13
wds12018-05-23 20:01
这句有问题,改为如下
strACC = "select * from user where User='" & UserName & "'"
#14
胡杨_aks2018-05-24 10:11
不好意思。这是我的全部代码,但还是出错!!
在VB中调用access数据库时出现错误。我用的是Visual Studio 2017中的VB,数据库是Access 2003。

        Dim Conn As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        Conn.ConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\备件管理系统\equipmentDB.mdb;Persist Security Info=False" '连接字串
        Conn.Open()
        strACC = "select * from user where loginName='" & TextBox1.Text & "'" '此变量为查询语句        Rs.Open(strACC, Conn, 1, 1)   '运行到此出错

      System.Runtime.“FROM 子句语法错误。”
#15
胡杨_aks2018-05-24 13:17
求高手赐教!!!
   
    在VB中调用access数据库时出现错误。我用的是Visual Studio 2017中的VB,数据库是Access 2003。数据库名为:equipmentDB.mdb,其中的表名为:user,有两个字段:loginName和passwowd。目的是:用户登录时比对用户名和密码。在窗体中创建了一个登录对话框,有二个文本框TextBox1和TextBox2,还有二个按钮。部分代码如下:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Conn As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        Conn.ConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\备件管理系统\equipmentDB.mdb;Persist Security Info=False"
        Conn.Open()
        strACC = "select * from user where loginName='"TextBox1.text"'"
        Rs.Open(strACC, Conn, 1, 1)   '运行到此出错
        ........

End Sub
      出错信息:
      System.Runtime.“FROM 子句语法错误。”



#16
ZHRXJR2018-05-24 17:18
回复 3楼 胡杨_aks
VS2017中不能这样设置,这是VB60的连接数据库与数据表的SQL语句。
VB60连接数据库与数据表是ADO对象,VS2017连接数据库与数据表是对象,完全不一样的。
因此肯定出错,好好看看VS2017的帮助文档吧。
System.Runtime.
大概意思是:系统运行时Interop服务异常。
估计是系统不支持ADO对象。

[此贴子已经被作者于2018-5-24 17:27编辑过]

#17
Artless2018-05-26 12:16
以下是引用kbtwhg在2018-5-23 16:58:32的发言:

'&UserName&'语法错误
应为'"& UserName &"'

好眼力
1