【问题标题】:how to use VB code to insert into an Microsoft Access database如何使用 VB 代码插入 Microsoft Access 数据库
【发布时间】:2013-06-11 01:36:33
【问题描述】:

我是 Microsoft Access 的新手。我需要编写 VB 代码来在按钮事件单击时插入数据库。插入应该从按钮所在的表单中获取信息。 我知道您可以通过以下方式获取表单信息:

Form![tablename]![columnname]

但是我将如何将该信息插入到不同的表中?我看到了这篇文章How to insert data into a Microsoft Access Database?,但我认为它只适用于 .NET,因为我找不到 Access 参考页 http://msdn.microsoft.com/en-us/library/office/aa296940(v=office.11).aspx 上列出的 OleDbConnection 对象@

【问题讨论】:

    标签: ms-access ms-access-2013


    【解决方案1】:

    你说的是 VB,但我认为你说的是​​ VBA(Access 使用的 VB)。

    如果您尝试插入的表与您发出命令的表位于同一数据库中,则您不需要连接。它是内置的。执行查询的命令是CurrentDB.Execute {SQL statement}

    所以,你会有这样的东西:

    Dim strSQL as String
    strSQL = "INSERT INTO TableName( FieldName)
    strSQL = strSQL & "SELECT 'MyData'"
    CurrentDB.Execute strSQL
    

    【讨论】:

    • 太棒了!我从来不知道这种方法。但是有两个问题:a)为什么要在插入查询的末尾附加一个选择,b)我在网上看到 CurrentDB 方法是 Application 对象的一部分。那为什么你不需要做 Application.CurrentDB.Execute strSQL?
    • Access 是这样写的。它可以工作,但正确的语法是w3schools.com/sql/sql_insert.asp。至少在这种情况下,假定应用程序。
    • 你是什么意思'它的访问方式写它'? SELECT 选择什么?您正在插入!
    • 如果您使用 Access 编写查询,它使用 SELECT 语句来选择要插入的内容。在这种情况下,它是一个常量值,但也可以是另一个表中的字段。
    【解决方案2】:

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 处理 btnAdd.Click 将 sql 调暗为字符串

        Dim con As New OleDb.OleDbConnection
    
        Dim cmd As New OleDb.OleDbCommand
    
    
        con.ConnectionString = "PROVIDER = Microsoft.Jet.OLEDB.4.0; Data Source = E:\test.mdb"
    
        con.Open()
    
        sql = "INSERT INTO student(name, Address)  VALUES('" & Me.txtName.Text & "','" & Me.txtAddress.Text & "')"
        cmd = New OleDb.OleDbCommand(sql, con)
        cmd.ExecuteNonQuery()
        MsgBox("saved")
    
        txtName.Text = ""
        txtAddress.Text = ""
        con.Close()
    

    【讨论】:

    • 这是正确的答案,因为它使用的是 VB,而不是 VBA
    【解决方案3】:
    Dim con As New OleDb.OleDbConnection
    
    Dim cmd As New OleDb.OleDbCommand
    
    
    con.ConnectionString = "PROVIDER = Microsoft.Jet.OLEDB.4.0; Data Source = E:\test.mdb"
    
    con.Open()
    
    sql = "INSERT INTO student(name, Address)  VALUES('" & Me.txtName.Text & "','" & Me.txtAddress.Text & "')"
    cmd = New OleDb.OleDbCommand(sql, con)
    cmd.ExecuteNonQuery()
    MsgBox("saved")
    
    txtName.Text = ""
    txtAddress.Text = ""
    con.Close()
    

    【讨论】:

    • 也许添加一个简短的解释来说明它是如何以及为什么起作用的?
    猜你喜欢
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    相关资源
    最近更新 更多