是否可以将 vba 代码放在 BarTender Design 后面并让它 运行 在访问中删除查询
Is it possible to put vba code behind BarTender Design and have it run a delete query in access
1.Public sub test()
2.dim cn, rs, cmd
3.Set cn = createobject("ADODB.Connection")
4.Set rs = createobject("ADODB.Recordset")
5.Set cmd = createobject("ADODB.Command")
6.connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
DataSource=C:\Users\text\Documents\PrintCenterForm\PrintCernter_v1.accdb;"
7.cn.Open connectionString
8.cmd.ActiveConnection = cn
9.cmd.Execute
10.End sub
抱歉,伙计们,我昨天发布了我的代码和错误的图片,但出于某种奇怪的原因他们删除了它?
但不管怎样,我在第 8 行收到一条错误消息:"Command text was not set for the command object."
我也试过重写这段代码,因为它只是坐在这里等待响应没有用,但我也试过这种方式,但似乎无法让它工作
1.Set accessApp = GetObject("C:\Users\texthere\Documents\PrintCenterForm\PrintCernter_v1.accdb")
3.Set accessApp = createObject("Access.Applicaiton")
4.accessApp.visible = true
5.accessApp.UserControl = true
6.accessApp.OpenCurrentDataBase
("C:\Users\texthere\Documents\PrintCenterForm\PrintCernter_v
1.accdb"),false
7.accessApp.Run "Qry_DeletePrinted"
8.End Sub
我在底部代码的第 1 行收到一条错误消息:“ActiveX 组件无法创建对象:'Access.Application' 我很可能不会使用这段代码,除非你们看到它会更容易使用吗?我也将 OnPrintJobStart 更改为 OnNewRecord 以查看这种方法是否有效,但首先我需要解决编码问题。
我的最终结果我只想要一些代码,这些代码将在 Access 中启动删除查询,以删除从 Bartender 打印的记录。
我在 Access 调用中已经有一个删除查询 "Qry_DeletePrinted"。
这个数据库位于我的 C:Drive DataSource=C:\Users\text\Documents\PrintCenterForm\PrintCernter_v1.accdb
澄清一下,我使用的是 MS Access 2013
如你们所见,我对 VB 脚本
一点都不熟悉
可以,Bartender 软件 中有一个 VBScript 类型的数据源。
创建一个新的 VBScript 数据源并将脚本类型设置为事件控制脚本。
在 Edit with Script Assistant..
中选择 OnPrintStart
并注入您的 VBScript 连接并删除语句代码。每次开始打印标签时都会运行。
首先,您需要通过 Bartender 在 VBScript 中打开您的 Access 数据库:
资料来源:Access 2013 Connection String
Dim cn, rs, cmd
set cn = CreateObject("ADODB.Connection")
set rs = CreateObject("ADODB.Recordset")
set cmd = CreateObject("ADODB.Command")
connectionScring = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\Users\text\Documents\PrintCenterForm\PrintCernter_v1.accdb;"
cn.Open connectionScring
其次,你可以准备你的SQL声明:
注意:此脚本中的Value
表示分配给此VBScript数据源的值
您可以选择通过调用以下方式获取其他数据源值:Format.NamedSubStrings("OtherDataSource").Value
sql = "delete from yourTable where key = '" & Value & "'"
cmd.ActiveConnection = cn
cmd.CommandText = sql
cmd.execute
cn.Close
虽然我没有很多 VBscript 经验。前段时间我确实创建了一些东西来删除 firebird 数据库中的记录。在我看来,您没有给出正确的命令来执行查询/过程。在我与程序一起使用并且有效的编码下方。
Const Connection = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=C:\DB\Database.FDB;"
SQL = "execute procedure NameOfProcedure " + Format.NamedSubStrings("TELLER").Value
Set dbconn = CreateObject("ADODB.Connection")
dbconn.Open connection
dbconn.Execute(SQL)
dbconn.Close
重要的部分是 "SQL"。该过程具有从数据库中删除打印行的代码,而 BarTender 仅调用该过程。当然我们需要告诉它需要删除哪一行。我为此 "Teller" 使用命名数据源。这与数据库字段 ID 链接。
以下是这些人帮助我完成的事情,而且效果非常好!
Dim cn, rs, cmd
set cn = CreateObject("ADODB.Connection")
set rs = CreateObject("ADODB.Recordset")
set cmd = CreateObject("ADODB.Command")
ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=\NetworkDriveName\PrintCernter_v1.accdb;"
cn.Open ConnectionString
sql = "Qry_DeletePrinted"
'+ Format.NamedSubStrings("Printed_User").Value
cmd.ActiveConnection = cn
cmd.CommandText = sql
cmd.execute
cn.close
1.Public sub test()
2.dim cn, rs, cmd
3.Set cn = createobject("ADODB.Connection")
4.Set rs = createobject("ADODB.Recordset")
5.Set cmd = createobject("ADODB.Command")
6.connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
DataSource=C:\Users\text\Documents\PrintCenterForm\PrintCernter_v1.accdb;"
7.cn.Open connectionString
8.cmd.ActiveConnection = cn
9.cmd.Execute
10.End sub
抱歉,伙计们,我昨天发布了我的代码和错误的图片,但出于某种奇怪的原因他们删除了它?
但不管怎样,我在第 8 行收到一条错误消息:"Command text was not set for the command object."
我也试过重写这段代码,因为它只是坐在这里等待响应没有用,但我也试过这种方式,但似乎无法让它工作
1.Set accessApp = GetObject("C:\Users\texthere\Documents\PrintCenterForm\PrintCernter_v1.accdb")
3.Set accessApp = createObject("Access.Applicaiton")
4.accessApp.visible = true
5.accessApp.UserControl = true
6.accessApp.OpenCurrentDataBase
("C:\Users\texthere\Documents\PrintCenterForm\PrintCernter_v
1.accdb"),false
7.accessApp.Run "Qry_DeletePrinted"
8.End Sub
我在底部代码的第 1 行收到一条错误消息:“ActiveX 组件无法创建对象:'Access.Application' 我很可能不会使用这段代码,除非你们看到它会更容易使用吗?我也将 OnPrintJobStart 更改为 OnNewRecord 以查看这种方法是否有效,但首先我需要解决编码问题。
我的最终结果我只想要一些代码,这些代码将在 Access 中启动删除查询,以删除从 Bartender 打印的记录。
我在 Access 调用中已经有一个删除查询 "Qry_DeletePrinted"。
这个数据库位于我的 C:Drive DataSource=C:\Users\text\Documents\PrintCenterForm\PrintCernter_v1.accdb
澄清一下,我使用的是 MS Access 2013
如你们所见,我对 VB 脚本
一点都不熟悉可以,Bartender 软件 中有一个 VBScript 类型的数据源。 创建一个新的 VBScript 数据源并将脚本类型设置为事件控制脚本。
在 Edit with Script Assistant..
中选择 OnPrintStart
并注入您的 VBScript 连接并删除语句代码。每次开始打印标签时都会运行。
首先,您需要通过 Bartender 在 VBScript 中打开您的 Access 数据库: 资料来源:Access 2013 Connection String
Dim cn, rs, cmd
set cn = CreateObject("ADODB.Connection")
set rs = CreateObject("ADODB.Recordset")
set cmd = CreateObject("ADODB.Command")
connectionScring = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\Users\text\Documents\PrintCenterForm\PrintCernter_v1.accdb;"
cn.Open connectionScring
其次,你可以准备你的SQL声明:
注意:此脚本中的Value
表示分配给此VBScript数据源的值
您可以选择通过调用以下方式获取其他数据源值:Format.NamedSubStrings("OtherDataSource").Value
sql = "delete from yourTable where key = '" & Value & "'"
cmd.ActiveConnection = cn
cmd.CommandText = sql
cmd.execute
cn.Close
虽然我没有很多 VBscript 经验。前段时间我确实创建了一些东西来删除 firebird 数据库中的记录。在我看来,您没有给出正确的命令来执行查询/过程。在我与程序一起使用并且有效的编码下方。
Const Connection = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=C:\DB\Database.FDB;"
SQL = "execute procedure NameOfProcedure " + Format.NamedSubStrings("TELLER").Value
Set dbconn = CreateObject("ADODB.Connection")
dbconn.Open connection
dbconn.Execute(SQL)
dbconn.Close
重要的部分是 "SQL"。该过程具有从数据库中删除打印行的代码,而 BarTender 仅调用该过程。当然我们需要告诉它需要删除哪一行。我为此 "Teller" 使用命名数据源。这与数据库字段 ID 链接。
以下是这些人帮助我完成的事情,而且效果非常好!
Dim cn, rs, cmd
set cn = CreateObject("ADODB.Connection")
set rs = CreateObject("ADODB.Recordset")
set cmd = CreateObject("ADODB.Command")
ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=\NetworkDriveName\PrintCernter_v1.accdb;"
cn.Open ConnectionString
sql = "Qry_DeletePrinted"
'+ Format.NamedSubStrings("Printed_User").Value
cmd.ActiveConnection = cn
cmd.CommandText = sql
cmd.execute
cn.close