You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Access窗体VBA中用Combobox值填充新建记录的客户信息

解决方案

实现逻辑

在用户确认新建客户档案的分支中,通过MandantenSuche的选中值,从Mandantenliste表提取对应客户的编号和名称,自动填充到Abgabe_Unterlagen窗体的空白新建记录中。

修改后的完整代码

Private Sub MandantenSuche_AfterUpdate()
   ' 查找匹配的记录
     
     Me.Recordset.FindFirst "Mandant_Nummer_F = " & MandantenSuche
     If Me.Recordset.NoMatch Then
          MsgBox "Nichts gefunden. Bitte neu eingeben.", vbInformation
          DoCmd.GoToRecord , , acNewRec
          DoCmd.GoToControl "Mandant_Name"
     Else
          If vbYes = MsgBox("Zusätzl. Akte für Mandant eingeben ?", vbYesNo) Then
            ' 创建新记录
            DoCmd.GoToRecord , , acNewRec
            
            ' 从Mandantenliste查询对应客户信息
            Dim rs As DAO.Recordset
            Set rs = CurrentDb.OpenRecordset( _
                "SELECT Mandant_Nummer, Mandant_Name FROM Mandantenliste " & _
                "WHERE Mandant_Nummer = " & MandantenSuche _
            )
            
            ' 填充控件值
            If Not rs.EOF Then
                Me!Mandant_Nummer_F = rs!Mandant_Nummer
                Me!Mandant_Name = rs!Mandant_Name
            End If
            
            ' 清理资源
            rs.Close
            Set rs = Nothing
            
            ' 调整焦点到后续需要编辑的控件
            DoCmd.GoToControl "Art_Unterlage"
          Else
            ' 打开已有档案,聚焦到类型控件
            DoCmd.GoToControl "Art_Unterlage"
          End If
     End If
End Sub

关键说明

  1. 字段匹配检查:确认Mandantenliste表中的Mandant_Nummer(客户编号)、Mandant_Name(客户名称)字段与窗体控件Mandant_Nummer_F、Mandant_Name的名称对应。
  2. 文本类型适配:如果Mandant_Nummer是文本字段,需将SQL语句中的条件改为:WHERE Mandant_Nummer = '" & MandantenSuche & "'"
  3. DAO库引用:Access 2007及以上版本默认已引用DAO库,若出现编译错误,需手动添加引用(工具→引用→勾选Microsoft DAO x.x Object Library)。

内容的提问来源于stack exchange,提问作者Banyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:52:50