可以从外部调用ms Access函数



我在现有的Access表单中创建了一个公共函数,并试图从应用程序外部调用它。只是为测试这个而创建了一个非常简单的函数。

Public Function test1(ByVal test1 As String)
Dim xlApp As New Excel.Application
xlApp.Visible = False
Dim wb As Excel.Workbook
Set wb = xlApp.Workbooks.Add
Dim ws As Excel.Worksheet
Set ws = wb.Worksheets(1)
End Function

我在Automation Anywhere上创建了与它的连接,并试图调用创建的函数。

连接字符串im使用:

Provider=Microsoft.ACE.OLEDB.16.0;Data Source="$connection$";Jet OLEDB:Database Password="$pass$"

尝试过这样做,但没有成功

Select test1("test")
EXEC test1("test1")
EXECUTE test1("test1")

还有简单的

没有办法在后台执行此操作,因此按照下面的建议,我创建了一个子脚本,并从VB脚本中调用它

Set appAccess = CreateObject("Access.Application")  
appAccess.OpenCurrentDatabase "RUTA ACCESS",,"CONTRASEÑA"
appAccess.UserControl = True
appAccess.Run "generarEtiqueta","numPropuesta","numExp","fileSavePath"   
appAccess.CloseCurrentDatabase
appAccess.Quit

将军Etiqueta是潜艇,所有其他都是的论点

您可以在access vba中创建一个模块,以任何形式或独立于形式使用它。该函数可以从外部调用,例如:

Dim appAccess As New Access.Application 
appAccess.OpenCurrentDatabase ("C:My DocumentsmyDatabase.mdb") 
appAccess.Run "myDatabase.test1", "Pass your argument here"

在表单后面运行代码需要打开表单。VBScript在Access常规模块中运行Sub和Function过程以及宏的示例。

Dim ObjAccess
Set ObjAccess = CreateObject("Access.application")
ObjAccess.visible = false
ObjAccess.OpenCurrentDatabase("filepathfilename.accdb") 
ObjAccess.Run("FunctionName")    'not finding a way to pass argument to Function
ObjAccess.Run "SubName", "argument" 'if Sub does not require argument then eliminate
ObjAccess.DoCmd.RunMacro "MacroName" 
ObjAccess.Quit
Set ObjAccess = Nothing

我测试了调用一个发出MsgBox和Debug.Print.MsgBox的Sub。MsgBox有效,Debug.Print无效。

相关内容

  • 没有找到相关文章

最新更新