Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请问怎样用mdb做壳来启动另外一个数据库?

古家林  发表于:2007-11-10 12:15:45  
复制

我在本站看到一个帖子说是可以用mdb做壳来启动另外一个数据库,但不是很明白怎么做,自己试着做也不行,请大家指教一下。

首先,我把这段代码做成了一个模块:

Function kq()
On Error GoTo kq_Err

  Set fs = Application.FileSearch ''查找文件
With fs
    .LookIn = "C:\Program Files\Microsoft Office\"  ''查找路径
    .SearchSubFolders = True  ''包含子文件夹
    .FileName = "msaccess.exe"  ''查找字串
  
    If .Execute() > 0 Then
     p = .FoundFiles(1)   ''ACCESS主程序完整路径
Shell p & " " & CurrentProject.Path & "\新物料管理.mdb /wrkgrp " & CurrentProject.Path & "\Security.mdw", 3

    Else
     MsgBox "C:\Program Files\Microsoft Office\ 下没找到MSACCESS的程序文件,系统无法运行."
    End If
End With
DoCmd.Quit    ''退出外壳

 


kq_Exit:
    Exit Function

kq_Err:
    MsgBox Error$
    Resume kq_Exit

End Function
然后建了一个autoexec的宏启动它,但是一打开数据库就显示“你所输入的表达式中,使用了microsoft office access找不到的函数名称”,到底是什么地方出问题了呢?请大家指教。谢谢。

 

Top
竹笛 发表于:2007-11-10 12:36:43

第一步:新建宏

第二步:在"操作"项中,选择 RunCode

第三步:函数名称中输入 kq()

第四步:保存宏名称为: autoexec



古家林 发表于:2007-11-10 13:59:04

我现在就是这样做的,还是不行。我打开模块窗体然后点击那个三角形符号运行子过程的时候,系统说你输入的表达式对属性filesearch的引用无效,这是什么问题呢?



古家林 发表于:2007-11-11 10:15:53

昨晚找了好久才从本论坛的旧帖里面找到了解决的方法,应该是先建一个窗体,然后在加载事件上写入如下代码:

Private Sub Form_Load()
Dim xtpf, cxph, fs, d, v As String
Dim str4 As String
xtpf = CurrentProject.Path '当前路径
cxph = Left(xtpf, 3)
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(cxph)))
v = Hex(d.SerialNumber)
Dim RetVal
str4 = """"
Dim strMDB As String
     Shell str4 & SysCmd(acSysCmdAccessDir) & "msaccess.exe" & str4 & " " & str4 & xtpf & "\***.mdb" & str4 & " /wrkgrp " & str4 & xtpf & "\***.mdw" & str4 & " " & "/User " & " " & "/pwd" & " " & "", 2

DoCmd.Quit    ''退出外壳

End Sub

然后再设定打开时启动这个窗体,如果需要的话在做成mde就行了。



Victor Duane 发表于:2007-11-11 10:24:16

FileSearch 属性

参阅应用于示例特性

可以使用 FileSearch 属性返回对当前 FileSearch 对象及其相关属性和方法的只读引用。

expression.FileSearch

expression      必需。返回“应用于”列表中的一个对象的表达式。

说明

FileSearch 仅在使用 Visual Basic 时才可用。

只要建立了对 FileSearch 对象的引用,就可以访问此对象的所有属性和方法。可以在模块“设计”视图中单击“工具”菜单的“引用”命令,设置对 FileSearch 对象的引用。然后在“引用”对话框中选择相应的复选框,将引用设置为“Microsoft Office Object Library”。如果使用“Microsoft Office Object Library”常量来设置 FileSearch 对象的属性,或将“Microsoft Office Object Library”常量用作 FileSearch 对象方法的参数,则 Microsoft Access 可以设置此引用。



古家林 发表于:2007-11-11 18:43:17
原来如此,谢谢V兄指点!

总记录:5篇  页次:1/1 9 1 :