如何在编辑后将文本框查询结果保存到数据库? - 微软访问

How to save a textbox query result to a database after editing it? - MS Access

Table 个文档:

Company    Document       Status        Notes:
A            1            Submission    Submitted on 12-12-12
A            1            Review        Reviewed on 12-12-13
A            1            Adopted       Adopted on 12-12-14
A            2            Submission    Submitted on 01-01-01
A            2            Review        Reviewed on 01-01-02
A            2            Adopted       Adopted on 01-01-03

我在一个表单上有两个组合框;第一个组合框允许我 select 文档并链接到第一个查询:例如选择“1”将 return:

Company    Document       Status        Notes:
A            1            Submission    Submitted on 12-12-12
A            1            Review        Reviewed on 12-12-13
A            1            Adopted       Adopted on 12-12-14

然后第二个组合框允许我 select 它的状态并链接到第二个查询;第二个查询用于过滤第一个查询的结果:例如选择 'Adopted' 将 return:

Company    Document       Status        Notes:
A            1            Adopted       Adopted on 12-12-14

最后,我有一个文本框,它根据来自两个组合框的 selection 显示 'Notes' 字段。例如。选择“1”,然后选择 'Adopted' 将在文本框中显示:

'Adopted on 12-12-14'

我可以编辑出现在文本框中的文本(注意),但我想为按钮分配一个功能,当点击时;将用当前文本框中的文本替换数据库中的 'Notes' 字段。

我已经搜索了一段时间,但似乎无法找到任何有用的东西;我知道代码将进入按钮的 click_event 属性;但我不确定确切使用什么代码。在最标准的形式中,我希望在单击按钮时发生这种情况:

UPDATE Document(Table) SET Notes(Field)=textboxname.value

有什么想法吗?

下面的代码将允许您输入文本,然后将执行 sql 命令来更新记录中的注释。

  1. 您需要将此代码放入您的按钮点击中。
  2. 您需要更改 sql 中组合框的名称以使用您拥有的名称。
  3. 我假设没有唯一的密钥可以用来代替 'document' 和 'status'?
  4. 我当然希望文件编号不要跨公司重复,否则你会更新多行!

    Private Sub cmdAddNote_Click()
    Dim strNote As String
    Dim strSQL  As String
    Dim dbs     As DAO.Database
    
    strNote = InputBox("Enter notes below, then click OK:", "Add Notes")
    If strNote = "" Then
        ' Cancel
    Else
    
        strSQL = "UPDATE [Documents] SET [Documents].Notes = '" & strNote & "' " & _
                 "WHERE ((([Documents].[Document])= '" & cbo1 & "') AND (([Documents].[Status])='" & cbo2 & "'));"
        Set dbs = CurrentDb
        dbs.Execute strSQL
        dbs.Close
        Set dbs = Nothing
    End If
    End Sub