北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |
虽然access的问题,但也和数据库有关的。我想了一个批处理文件,内容是:copy \\apserver\shuju\新物料管理.mdb d:\ap\新物料管理.mdb" 。意思就是把我厂服务器上的新物料管理.mdb这个文件拷到本机的d:\ap下。我现在想问的是,能不能拷到与这个批处理文件的同一个文件夹内呢?这样我就不用设定死安装的路径了。我试过用CurrentProject.Path也不行,请大家指教了。另,祝大家元旦快乐,谢谢。
啊,我打了一大段,结果没传上来,晕啊
Private Const PROGRESS_CANCEL = 1
Private Const PROGRESS_CONTINUE = 0
Private Const PROGRESS_QUIET = 3
Private Const PROGRESS_STOP = 2
Private Const COPY_FILE_FAIL_IF_EXISTS = &H1
Private Const COPY_FILE_RESTARTABLE = &H2
'// 此 API 在 WIN9X 下不能使用
Private Declare Function CopyFileEx Lib "kernel32.dll" Alias "CopyFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal lpProgressRoutine As Long, lpData As Any, ByRef pbCancel As Long, ByVal dwCopyFlags As Long) As Long
Private mlngCancel As Long
Private mprgState As Object
Private mlblState As Object
Public Function CopyProgressRoutine(ByVal TotalFileSize As Currency, _
ByVal TotalBytesTransferred As Currency, _
ByVal StreamSize As Currency, _
ByVal StreamBytesTransferred As Currency, _
ByVal dwStreamNumber As Long, _
ByVal dwCallbackReason As Long, _
ByVal hSourceFile As Long, _
ByVal hDestinationFile As Long, _
ByVal lpData As Long) As Long
'// 显示进度
mprgState.Value = CLng((100 / TotalFileSize) * TotalBytesTransferred)
mlblState.Caption = "已完成: " & FormatPercent(mprgState.Value / 100, 0)
'
DoEvents
'// 继续复制
CopyProgressRoutine = PROGRESS_CONTINUE
End Function
Public Function uCopyFile(ByVal strFrom As String, _
ByVal strTo As String, _
ByRef prgState As Object, _
ByRef lblState As Object) As Boolean
Dim lngReturn As Long
Set mprgState = prgState
Set mlblState = lblState
'// 开始复制
lngReturn = CopyFileEx(strFrom, strTo, _
AddressOf CopyProgressRoutine, ByVal 0&, mlngCancel, COPY_FILE_RESTARTABLE)
If lngReturn = 0 Then
uCopyFile = False
Else
uCopyFile = True
End If
End Function
上面的代码写入通用模块中,
在窗体中写入以下代码:
'************************************************
'** 函数名称: uCopyFile
'** 函数功能: 复制文件
'** 参数说明:
'** strFrom 源文件
'** strTo 目标文件
'** prgState 进度条控件
'** lblState 用来显示进度的 Label
'** 函数返回:
'** Boolean 类型
'** True 复制成功
'** False 复制失败
'** 参考实例:
'**
'** blnReturn = uCopyFile("c:\test.exe", "d:\test.exe", prgState, lblState)
'** 示例作者: Grant
'** 来 源: www.accessbbs.cn
'************************************************
' 在调用时,直接使用 uCopyFile("c:\test.exe", "d:\test.exe", prgState, lblState),其中的 prgState 你可以去掉不要,由自己来定。
Private Sub copy_Click()
blnReturn = uCopyFile("c:\txt.txt", "c:\txt2.txt", prgState, lblState)
End Sub
另外也可用xcopy复制文件
复制文件和目录,包括子目录。
Press any key to begin copying file(s)
列出每个文件的单独行中的每个字符串。如果列出的任何字符串与要复制的文件的绝对路径的任何部分匹配,就从复制进程排除该文件。例如,如果指定字符串 "\Obj\",则会排除 Obj 目录下的所有文件。如果指定字符串 ".obj",则排除具有 .obj 扩展名的所有文件。
如果在复制过程中丢失连接(例如,如果用于连接的服务器脱机),复制过程将在重新建立连接后恢复。/z 也显示每个文件完成的复制操作的百分比。
可在 COPYCMD 环境变量中使用 /y。在命令行上使用 /-y 可以覆盖该命令。默认情况下,会提示您覆盖,除非您从批处理脚本内运行 copy。
将加密文件复制到不支持 EFS 的卷会导致错误。应首先解密文件或将文件复制到支持 EFS 的卷中。
要附加文件,请指定单个目标文件,多个源文件(使用通配符或文件 1 + 文件 2 + 文件 3 格式)。
如果省略 Destination,xcopy 命令将文件复制到当前目录。
按照V兄xcopy的方法搞掂了,但是又有新问题出现,我原来的思路是启动一个叫update的mdb,这个mdb打开后就运行一个叫update的批处理文件和一个叫新管理系统的mdb。这个批处理文件很简单:xcopy \\apserver\shuju\新管理系统.mdb /y 。问题来了,当我点击这个批处理文件运行的时候是正常的,但是如果用update数据库打开这个批处理文件的话,他就会把文件复制到c;\我的文档下,而不会复制到当前的文件夹,我试过在其他的电脑上也是一样会复制到系统盘的我的文档里面。我在update.mdb的代码是这样写的:
Dim xtpf, cxph, fs, d, v, e 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
Dim stAppName As String
stAppName = xtpf & "\update.bat"
Call Shell(stAppName, 1)
Shell str4 & SysCmd(acSysCmdAccessDir) & "msaccess.exe" & str4 & " " & str4 & xtpf & "\新物料管理.mdb" & str4 & " /wrkgrp " & str4 & "\\apserver\shuju\Security.mdw" & str4 & " " & "/User " & " " & "/pwd" & " " & "", 2
DoCmd.Quit ''退出外壳
请大家指教了。
Access软件网 版权所有 CopyRight 2006-2030
上海盟威软件有限公司 提供支持
沪ICP备12024966号-4