Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access Access宏中的运行代码错误_Ms Access_Vba - Fatal编程技术网

Ms access Access宏中的运行代码错误

Ms access Access宏中的运行代码错误,ms-access,vba,Ms Access,Vba,我正在尝试在Access中创建一个宏,该宏将运行VBA代码。我试图使用RunCode命令来运行一个函数,该函数将运行我已经创建的VBA函数,但由于某种原因,它说它找不到它,我真的很困惑为什么。我已经发布了宏的图片以及下面的代码。任何帮助都将不胜感激 宏: 代码: 您的问题很可能取决于触发器事件的位置和代码放置 如何触发RunTotals宏?使用嵌入式宏 使用RunMacro操作或在VBA中使用DoCmd.RunMacro 函数Totals()放在哪里?它需要在表格后面 触发事件或模块中的事件

我正在尝试在Access中创建一个宏,该宏将运行VBA代码。我试图使用RunCode命令来运行一个函数,该函数将运行我已经创建的VBA函数,但由于某种原因,它说它找不到它,我真的很困惑为什么。我已经发布了宏的图片以及下面的代码。任何帮助都将不胜感激

宏:

代码:


您的问题很可能取决于触发器事件的位置和代码放置

  • 如何触发RunTotals宏?使用嵌入式宏 使用RunMacro操作或在VBA中使用DoCmd.RunMacro
  • 函数Totals()放在哪里?它需要在表格后面 触发事件或模块中的事件
最后,如果在触发器事件中,在属性表事件行中键入“=Totals()”,则可以避免使用单独的对象(RunTotals宏和embedded宏)。或者,您可以使用简单的行:Totals调用VBA中的函数。但第二项中解释的位置仍然适用

Function Totals()

Dim db As Database

Set db = CurrentDb
foldername = CurrentProject.Path & "\GeneralTotals"
deleteTotals = "DELETE * FROM Totals"

totalVerified = "INSERT INTO Totals([TOTAL VERIFIED FORMULARIES], [TOTAL AVAILABLE FOR IMPORT], [TOTAL SHOULD BE IMPORTED], [TOTAL RECENTLY IMPORTED]) " & _
"SELECT A.cnt, B.cnt, C.cnt, D.cnt " & _
"FROM ( " & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & _
    "FROM VerifiedFormularies " & _
") AS A " & _
", ( " & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & _
    "FROM ImportMetricsIDs " & _
") as B " & _
", ( " & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & _
    "FROM ShouldImportMetricsIDsTable " & _
    "WHERE [IMPORTSTATUS]= 'Yes' " & _
") AS C " & _
", ( " & _
    "SELECT COUNT([LATEST]) as cnt " & _
    "FROM VerifiedFormularies " & _
    "WHERE [LATEST]= 'Yes' " & _
") AS D "


db.Execute deleteTotals
db.Execute totalVerified


DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "Totals", foldername

MsgBox ("Totals have been exported to: " & foldername)

End Function