小编Pro*_*oVB的帖子

将Microsoft Access作为计划任务运行

我正在寻求关于如何安排数据库(.accdb)的自动更新的意见,因为我对我设置的过程不太满意.

目前,它的工作原理如下:

  1. 任务计划程序调用.bat
  2. .bat调用.vbs
  3. .vbs打开数据库并调用宏
  4. 宏调用函数(VBA级别)
  5. 该函数调用更新子例程

我认为有太多的步骤,并且它需要2个与数据库相关并存储在系统上的外部文件(.Bat和.vbs),这增加了程序中断的风险.

显然(但请告诉我,我错了,我怎么能改变它).vbs不能调用子程序而只能调用宏.同样,如果用户期望进入数据库的VB环境,则访问宏不能调用子例程,而只能调用函数.这就是我调用函数(VBA Level)然后调用子例程的原因.

希望你们中的一些人知道如何缩短步骤并最终获得.bat和.vbs

vbscript ms-access batch-file auto-update

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

VBA功能可选参数

我多次调用一段特定代码,因此我想使用可选参数.我可以这样写:

Public Sub main()

strA = "A"

'Calling the function
CalculateMe (strA)

End Sub

Public Sub CalculateMe(strA As String)

    Set rs = DB.OpenRecordset("tbl_A")
    rs.MoveFirst
        Do Until rs.EOF
            If rs.Fields(0) = strA Then
                dblA = rs.fields(2).Value
            End If
            rs.MoveNext
        Loop
End Sub
Run Code Online (Sandbox Code Playgroud)

如何更改功能以保存多个可选参数?

就像是:

Public Sub main()
strA = "A"
strB = "B"

'Calling the function
CalculateMe (strA, strB)

more code
End Sub

Public Sub CalculateMe(Optional strA As String, Optional strB as String)

    Set rs = DB.OpenRecordset("tbl_A")
    rs.MoveFirst
        Do Until rs.EOF …
Run Code Online (Sandbox Code Playgroud)

vba function optional-parameters

16
推荐指数
2
解决办法
7万
查看次数

"新"Excel.Application与Excel.Application

我正在寻求澄清"新"对对象和脚本的影响.

我的理解是,如果我需要对excel文档执行操作并且应用程序已关闭,那么我应该使用New Excel.Application.

如果我保持此应用程序处于活动状态(例如通过诸如工作簿之类的对象)以及稍后在脚本中我决定打开另一个工作簿,我是否仍应使用New Excel.Application或者使用Excel.Application会更好吗?

我担心的是,我将编写一个长脚本,它将对至少5个工作簿执行操作.我将不得不从一个工作簿切换到另一个工作簿然后再回到前者...

如果每次脚本创建一个新的Excel.Application,我可能最终会运行很多,我担心这个混乱会产生问题.

写一些类似的东西更合适:

Dim NxlApp as New Excel.Application
Dim xlApp as Excel.Application

  NxlApp.Workbooks.Open "C:\Users\...\WorkbookA.xlsx"
  NxlApp.Visible = True

'Perform actions on WorkbookA (keep it open)


  Set ExcelApp = GetObject("", "Excel.Application.14")
  xlApp.Workbooks.Open "C:\Users\...\WorkbookB.xlsx"
  xlApp.Visible = True

'Perform actions on WorkbookB (keep it open)


'Go back to WorkbookA (using the xlApp variable this time)

  xlApp.Workbook("A.xlsx")...
Run Code Online (Sandbox Code Playgroud)

excel vba instance excel-vba excel.application

6
推荐指数
2
解决办法
3万
查看次数

批量连接字符串和变量

我想在.bat文件中创建一个动态文件路径.目前文件路径如下所示:

"C:\FolderA\FolderB\FileA.xlsx"
Run Code Online (Sandbox Code Playgroud)

我想在文件名中加入今天的日期以产生类似的东西:

/exp:"C:\FolderA\FolderB\FileA " & date() & ".xlsx" /T`
Run Code Online (Sandbox Code Playgroud)

我已经尝试创建一个变量并将其与硬编码部分连接但它不起作用:

set Mydate=!date:~10,4!!date:~7,2!!date:~4,2!
/exp:"C:\FolderA\FolderB\FileA "&%Mydate%&".xlsx" /T
Run Code Online (Sandbox Code Playgroud)

批量连接字符和变量以及引号的规则是什么?如何使用记事本批量调试?

windows cmd batch-file string-concatenation

6
推荐指数
1
解决办法
2万
查看次数

Count + IIF-访问查询

不论他们从事的部门是什么,公司的员工都分为A,B和C类(财务,人力资源,销售...)

如何编写查询(Access 2010),以检索每个类别和每个部门的员工人数?

最终输出将是一张excel表,其中公司部门将在A列中,B列中的A类,B列中的B类,D列中的C类。

我以为IIF()嵌套COUNT()可以胜任工作,但实际上是计算员工总数,而不是按类别进行细分。

任何的想法?

SELECT
    tblAssssDB.[Division:],
    COUNT( IIF( [Category]   = "A", 1, 0 ) ) AS Count_A,
    COUNT( IIF( [Category]   = "B", 1, 0 ) ) AS Count_B,
    COUNT( IIF( [ET Outcome] = "C", 1, 0 ) ) AS Count_C
FROM
    tblAssssDB
GROUP BY
    tblAssssDB.[Division:];
Run Code Online (Sandbox Code Playgroud)

我的目的是编写单个sql语句,并避免编写子查询以计算每个除法的值。

sql ms-access count iif

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