| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2983 人关注过本帖
标题:在VB中调用access数据库时出现错误
只看楼主 加入收藏
胡杨_aks
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2018-5-23
收藏
得分:0 
是的,我输入错了。还是不行!

求高手赐教!
   
    在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 子句语法错误。”

2018-05-23 17:37
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:5 
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   '这样就不会出错了




请不要选我!!!
2018-05-23 18:01
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
收藏
得分:0 
这句有问题,改为如下
strACC = "select * from user where User='" & UserName & "'"
2018-05-23 20:01
胡杨_aks
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2018-5-23
收藏
得分:0 
不好意思。这是我的全部代码,但还是出错!!
在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 子句语法错误。”
2018-05-24 10:11
胡杨_aks
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2018-5-23
收藏
得分:0 
求高手赐教!!!
   
    在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 子句语法错误。”



2018-05-24 13:17
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
回复 3楼 胡杨_aks
VS2017中不能这样设置,这是VB60的连接数据库与数据表的SQL语句。
VB60连接数据库与数据表是ADO对象,VS2017连接数据库与数据表是对象,完全不一样的。
因此肯定出错,好好看看VS2017的帮助文档吧。
System.Runtime.
大概意思是:系统运行时Interop服务异常。
估计是系统不支持ADO对象。

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


请不要选我!!!
2018-05-24 17:18
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
收藏
得分:5 
以下是引用kbtwhg在2018-5-23 16:58:32的发言:

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

好眼力

无知
2018-05-26 12:16
快速回复:在VB中调用access数据库时出现错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017727 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved