标签: access-vba

使用VBA将所有MS Access SQL查询导出到文本文件

我必须使用许多宏查询来记录MS Access数据库等.我希望使用代码将每个SQL查询提取到与查询命名相同的文件,例如,如果查询名为q_warehouse_issues,那么我希望提取SQL到名为q_warehouse_issues.sql的文件

我不希望导出QUERY结果集,只是SQL!

我知道我可以在Access中手动执行此操作,但我厌倦了所有点击,执行saveas等.

sql ms-access access-vba

27
推荐指数
4
解决办法
3万
查看次数

如何测试recordSet是否为空?一片空白?

如何测试记录集是否为空?

        Dim temp_rst1 As Recordset
        Dim temp_rst2 As Recordset

        Set temp_rst1 = db.OpenRecordset("SELECT * FROM ORDER_DATA WHERE SKUS_ORDERED = '" & curSKU1 & "' AND [ORDER] = " & curOrder)
        Set temp_rst2 = db.OpenRecordset("SELECT * FROM ORDER_DATA WHERE SKUS_ORDERED = '" & curSKU2 & "' AND [ORDER] = " & curOrder)

        If IsNull(temp_rst1) Or IsNull(temp_rst2) Then MsgBox "null"
Run Code Online (Sandbox Code Playgroud)

我正在根据select语句打开几个记录集.如果没有记录,IsNull会返回true吗?

ms-access access-vba

26
推荐指数
3
解决办法
16万
查看次数

如何将数组传递给VBA中的函数?

我正在尝试编写一个接受数组作为参数的函数.该数组可以包含任意数量的元素.

Function processArr(Arr() As Variant) As String
    Dim N As Variant  
    dim finalStr as string      
    For N = LBound(Arr) To UBound(Arr)
        finalStr = finalStr & Arr(N)
    Next N
    processArr = finalStr
End Function
Run Code Online (Sandbox Code Playgroud)

以下是我尝试调用该函数的方法:

Sub test()
    Dim fString as string
    fString = processArr(Array("foo", "bar"))
End Sub
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:

编译错误:类型不匹配:数组或用户定义的预期类型.

我究竟做错了什么?

arrays ms-access vba function access-vba

26
推荐指数
2
解决办法
10万
查看次数

我们可以同时使用接口和事件吗?

我仍然试图围绕VBA中的接口和事件如何协同工作(如果有的话).我即将在Microsoft Access中构建一个大型应用程序,我希望尽可能灵活和可扩展.为此,我想利用MVC,接口(2)(3),自定义集合类,使用自定义集合类引发事件,找到更好的方法来集中管理由窗体上的控件触发的事件,以及一些额外的VBA设计模式.

我预计这个项目会变得非常毛茸茸,所以我想尝试在VBA中一起使用接口和事件的限制和好处,因为它们是我认为在VBA中真正实现松散耦合的两种主要方式(我认为).

首先,有一个问题是在尝试在VBA中一起使用接口和事件时引发的错误.答案指出"显然不允许事件通过接口类传递到具体类中,就像你想使用'Implements'一样."

然后我在另一个论坛答案中找到了这个陈述:"在VBA6中,我们只能引发在类的默认接口中声明的事件 - 我们不能引发在Implemented接口中声明的事件."

因为我还在寻找接口和事件(VBA是我真正有机会在现实环境中尝试OOP的第一种语言,我知道不寒而栗),我无法在脑海中彻底解决所有问题这意味着在VBA中一起使用事件和接口.听起来你可以同时使用它们,听起来有点像你不能.(例如,我不确定上面的"一个类的默认接口"与"一个已实现的接口"是什么意思.)

有人能给我一些基本的例子,说明在VBA中一起使用接口和事件的真正好处和局限吗?

oop ms-access vba interface access-vba

25
推荐指数
3
解决办法
2489
查看次数

Now()函数带有时间修剪

所以函数=Now()....有一种方法我可以使用这个,只得到日期,而不是时间?

或者只是这个想法的功能?

ms-access vba ms-access-2007 access-vba ms-access-2003

23
推荐指数
4
解决办法
20万
查看次数

MS Access中的进度条

我有一个在Microsoft Access 2010中运行的查询,它需要超过30分钟才能正常运行.我想向最终用户呈现查询的一些状态.进度条会很好,但不是必需的.访问似乎线程很差,并且在查询执行期间锁定紧张,否定我尝试的任何更新.虽然我宁愿鞭打VS并编写我自己的应用程序来执行此操作,但我不得不使用Access.

有任何想法吗?

编辑

我曾经从填充数据库的批处理脚本中运行它,但我希望将它全部包含在Access中.具体来说,"查询"实际上是一个ping一系列主机的VBA脚本.所以我不关心优化时间本身,而只是让最终用户知道它没有被锁定.

ms-access access-vba

23
推荐指数
2
解决办法
9万
查看次数

通过VBA将MS Access表导出到同一目录中的Excel电子表格

我的访问数据库中两个表,我希望能够导出到excel.

我可以通过打开表然后执行File-> Export ...然后选择格式并输入文件名来实现.

但是,通过这种方式,用户实际上必须输入名称,因此存在误导文件或将其保存为错误格式或位置错误的空间.此外,这两个表必须导出到两个单独的工作簿.

我希望能够做的是在表单上创建一个按钮,该表单自动将一个表导出到一个工作表,另一个导出到另一个工作表,两个都在同一个excel工作簿中.

如果将它们放在同一个工作簿中是不可能的,那很好.我只是希望它们自动导出到保存访问数据库的同一目录中.

如果您知道如何操作,则可以添加额外的权限来自定义名称以包含日期.这样,该目录也将具有历史导出.有什么建议?

excel ms-access export-to-excel access-vba

22
推荐指数
2
解决办法
15万
查看次数

文本框null问题

我的Access表单上有一个文本框和一个按钮.在按钮的单击事件中,我想查看文本框是否为空,如果是,则不会执行任何操作.所以我用

If Me.textbox.Value = Null Then
    Exit Sub
End if
Run Code Online (Sandbox Code Playgroud)

但它不起作用...我在执行窗口中检查了textbox.value并且它是Null,但if子句不起作用......为什么?

编辑:@Dimse,我试过"",不起作用.而且textbox.text = Null,它弹出一个错误告诉我文本框没有活动..很奇怪.

ms-access vba access-vba

22
推荐指数
1
解决办法
8万
查看次数

使用Excel VBA将数据导出到MS Access表

我目前正在使用以下代码将数据从工作表导出到MS Access数据库,代码循环遍历每一行并将数据插入MS Access Table.

Public Sub TransData()

Application.ScreenUpdating = False
Application.EnableAnimations = False
Application.EnableEvents = False
Application.DisplayAlerts = False

ActiveWorkbook.Worksheets("Folio_Data_original").Activate

Call MakeConnection("fdMasterTemp")

For i = 1 To rcount - 1
    rs.AddNew
    rs.Fields("fdName") = Cells(i + 1, 1).Value
    rs.Fields("fdDate") = Cells(i + 1, 2).Value
    rs.Update

Next i

Call CloseConnection

Application.ScreenUpdating = True
Application.EnableAnimations = True
Application.EnableEvents = True
Application.DisplayAlerts = True

End Sub
Run Code Online (Sandbox Code Playgroud)
Public Function MakeConnection(TableName As String) As Boolean
'*********Routine to establish connection with database

   Dim DBFullName As String
   Dim …
Run Code Online (Sandbox Code Playgroud)

sql ms-access vba excel-vba access-vba

22
推荐指数
1
解决办法
10万
查看次数

非Web SQL注入

SQL注入攻击似乎有些歇斯底里.最近,在这里

如何根据另一个字段中的查找值返回一个字段中的值

如果我在Excel中创建一个连接到Access数据库的宏,我真的必须关注SQL注入吗?它不在网上,它在我的办公室使用(你们还记得台式机吗?).我并不担心我的同事会破坏我.如果他们足够聪明,可以进行SQL注入,他们是否足够聪明,无法破解我的加载密码并只是更改代码?

excel ms-access vba sql-injection access-vba

21
推荐指数
4
解决办法
4660
查看次数