VBA在Microsoft Access

时间:2017-07-10 12:14:54

标签: vba ms-access access-vba

情况: 我从Outlook下载附件,并根据一些标准将它们导入Access表。

例如,我下载以下文件: SenderA_A_Timestamp.csv,SenderA_B_Timestamp.csv,SenderB_C_Timestamp.csv,SenderC_A_Timestamp.csv并加载更多内容。

现在我已经创建了一个表单,用户可以从某个日期开始选择所有类型的C CSV文件,或者从某个日期开始选择所有类型的C CSV文件。

enter image description here

Cluster,Hosts和Volume表示文件类型。日期时间表示最后更新的时间。 Cl_Import,Hosts_Import和Volume_Import是不同文件所需的导入规范。

问题: 我现在想要添加一个新类型,例如,在Volume下,并希望在下次打开表单时保留它。

软件: -Microsoft Access 2016 -SQL查询 -Outlook 2016 -VBA

1 个答案:

答案 0 :(得分:1)

创建一个名为SwitchboardItems的表 添加以下字段:

  • ItemNumber(数字,主键)
  • ItemText(文字)
  • 命令(数字)
  • 参数(文字)

ItemNumber应该是顺序的(如果需要,请使用AutoNum) ItemText是表单上显示的文字 Command表示按下按钮时要执行的操作 Argument是与该选项相关的任何内容(例如要打开的文件名) enter image description here

创建一个空白的Continuous表单 记录来源是:
SELECT * FROM SwitchboardItems WHERE [ItemNumber]>0 ORDER BY [ItemNumber];
ItemNumber 0是菜单的标题,因此在记录源中被忽略 在表单属性的Data Entry标签上,将Allow AdditionsAllow DeletionsAllow EditsAllow FiltersNo转到Data

将命令按钮和文本框添加到表单的Detail部分 为该按钮指定名称Option1和文本框OptionLabel1 文本框的Control SourceItemTextForm Header名称Label1上添加标签。

将以下代码添加到Form_Open事件中。它将菜单标题放在表单标题中:

Private Sub Form_Open(Cancel As Integer)

    Me.Label1.Caption = DLookup("ItemText", "SwitchboardItems", "[ItemNumber]=0")
    Me.Requery

End Sub

将此代码添加到表单模块:

Private Sub Option_Click()

    Select Case Command
        Case 1
            'Add code to set references to Excel, etc...
            'Dim wrkbk As Object
            'Set wrkbk = workbooks.Open([Argument])
        Case 2
            MsgBox [Argument]
        Case 3
            DoCmd.OpenForm [Argument], acNormal
        Case 4
            DoCmd.OpenReport [Argument], acViewNormal
        Case 5

        Case 6
            DoCmd.Close
        Case 7
            DoCmd.OpenQuery [Argument]
        Case 8
    End Select

End Sub

每个Case语句都反映Command表中的SwitchboardItems值,您应该编写您想要执行的操作(打开工作簿,关闭数据库,运行SQL等)。

最后,将此代码添加到Option1文本框和命令按钮的单击事件中:

Private Sub Option1_Click()
    Option_Click
End Sub

Private Sub OptionLabel1_Click()
    Option_Click
End Sub

您完成的表单看起来与此类似(我已点击 Other_Import 按钮,显示一个消息框,因为 Command 为2):
enter image description here

NB:您可以添加更多内容 - 例如,上次更新时间作为表格中的额外字段。