情况: 我从Outlook下载附件,并根据一些标准将它们导入Access表。
例如,我下载以下文件: SenderA_A_Timestamp.csv,SenderA_B_Timestamp.csv,SenderB_C_Timestamp.csv,SenderC_A_Timestamp.csv并加载更多内容。
现在我已经创建了一个表单,用户可以从某个日期开始选择所有类型的C CSV文件,或者从某个日期开始选择所有类型的C CSV文件。
Cluster,Hosts和Volume表示文件类型。日期时间表示最后更新的时间。 Cl_Import,Hosts_Import和Volume_Import是不同文件所需的导入规范。
问题: 我现在想要添加一个新类型,例如,在Volume下,并希望在下次打开表单时保留它。
软件: -Microsoft Access 2016 -SQL查询 -Outlook 2016 -VBA
答案 0 :(得分:1)
创建一个名为SwitchboardItems
的表
添加以下字段:
ItemNumber
应该是顺序的(如果需要,请使用AutoNum)
ItemText
是表单上显示的文字
Command
表示按下按钮时要执行的操作
Argument
是与该选项相关的任何内容(例如要打开的文件名)
创建一个空白的Continuous
表单
记录来源是:
SELECT * FROM SwitchboardItems WHERE [ItemNumber]>0 ORDER BY [ItemNumber];
ItemNumber 0
是菜单的标题,因此在记录源中被忽略
在表单属性的Data Entry
标签上,将Allow Additions
,Allow Deletions
,Allow Edits
,Allow Filters
和No
转到Data
将命令按钮和文本框添加到表单的Detail
部分
为该按钮指定名称Option1
和文本框OptionLabel1
文本框的Control Source
为ItemText
在Form 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):
NB:您可以添加更多内容 - 例如,上次更新时间作为表格中的额外字段。