设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3174|回复: 10
打印 上一主题 下一主题

[宏/菜单/工具栏] 求助:vb中调用其他access宏的问题

[复制链接]
跳转到指定楼层
1#
发表于 2006-4-5 19:42:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如vb中调用本access表的宏则可使用如下代码:
Sub usemacro(macroname As String)
DoCmd.RunMacro (macroname)
End Sub
但如果调用别的access的宏,偶编了下面的代码为啥不行撒:
Sub usemacro(macroname As String)
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
cnn.Open ("provider=microsoft.jet.oledb.4.0; data source=D:\db1.mdb;")
DoCmd.RunMacro (macroname)
cnn.Close: Set cnn = Nothing
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-4-5 19:50:00 | 只看该作者
呵呵!你要做什么啊?
3#
 楼主| 发表于 2006-4-5 20:19:00 | 只看该作者
干点私货撒,老大帮帮忙啦
4#
 楼主| 发表于 2006-4-6 00:41:00 | 只看该作者
顶上去撒
5#
发表于 2006-4-6 00:43:00 | 只看该作者
Sub usemacro(macroname As String)
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
cnn.Open ("provider=microsoft.jet.oledb.4.0; data source=D:\db1.mdb;")
DoCmd.RunMacro (macroname)
cnn.Close: Set cnn = Nothing
End Sub

不能这样用.
6#
发表于 2006-4-6 00:51:00 | 只看该作者
在Access中执行其他Access功能的例子如下,但在VB中我不知道了.

Sub DisplayForm()

    Dim strDB as String

    ' Initialize string to database path.
    Const strConPathToSamples = "C:\Program Files\Microsoft Office\Office11\Samples\"

    strDB = strConPathToSamples & "Northwind.mdb"


    ' Create new instance of Microsoft Access.
    Set appAccess = CreateObject("Access.Application")


    ' Open database in Microsoft Access window.
    appAccess.OpenCurrentDatabase strDB


    ' Open Orders form.
    appAccess.DoCmd.OpenForm "Orders"
End Sub
7#
发表于 2006-4-6 03:47:00 | 只看该作者
还要加上这句话

    AppAccess.CloseCurrentDatabase
    Set AppAccess = Nothing

8#
发表于 2006-4-6 04:00:00 | 只看该作者
对还要关闭数据库和释放空间.
9#
 楼主| 发表于 2006-4-6 06:52:00 | 只看该作者
首先谢谢两位,但偶试了代码后运行出错,如偶想在一个access的vb环境下调用d:\db1.mdb中的“宏1”,按照以上所述代码,应为

Sub aaa()
Dim strDB as String

Const strConPathToSamples = "d:\"

strDB = strConPathToSamples & "db1.mdb"




    ' Create new instance of Microsoft Access.
    Set appAccess = CreateObject("Access.Application")




    ' Open database in Microsoft Access window.
    appAccess.OpenCurrentDatabase strDB




    ' Open Orders form.
    appAccess.DoCmd.OpenForm "Orders"
End Sub

但运行时出错,显示“microsoft office access 不能打开这个数据库,因为它已丢失或已被其他用户按独占方式打开”,这是怎么回事啊?

请赐教,谢谢

10#
 楼主| 发表于 2006-4-6 07:06:00 | 只看该作者
有了,在 appAccess.OpenCurrentDatabase strDB后面加个ture
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-7 16:35 , Processed in 0.092144 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表