当前位置:编程学习 > VB >>

请教

我做的图书馆里系统,数据备份的时候,只能保存在默认的一个文件夹下,我想让它弹出一个对话框保存在任意目录下,请高手给我改一下
Dim olddb As String
  Dim Fs As FileSystemObject
  Dim BackUpFile As String
  olddb = App.Path + "\" + DBName
  BackUpFile = App.Path + "\数据库备份\" + "_" + DBName
  If MsgBox("你确定要备份当前数据库吗?", vbQuestion + vbOKCancel _
                + vbDefaultButton2, "请确认") = vbCancel Then
    Exit Sub
  End If
  Set Fs = CreateObject("Scripting.FileSystemObject")
  '拷贝数据库文件至指定位置
  Fs.CopyFile olddb, BackUpFile
  MsgBox "数据库备份成功", vbInformation + vbOKOnly, "信息"
--------------------编程问答-------------------- Private Type BrowseInfo
    hWndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = 1
Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Private Function SelectDirectory(Byval sTitle As String) As String
    Dim iNull As Integer, lpIDList As Long, lResult As Long
    Dim sPath As String, udtBI As BrowseInfo
    With udtBI
        .hWndOwner = Me.hWnd
        .lpszTitle = lstrcat(sTitle, "")
        .ulFlags = BIF_RETURNONLYFSDIRS
    End With
    lpIDList = SHBrowseForFolder(udtBI)
    If lpIDList Then
        sPath = String$(MAX_PATH, 0)
        SHGetPathFromIDList lpIDList, sPath
        CoTaskMemFree lpIDList
        iNull = InStr(sPath, vbNullChar)
        If iNull Then sPath = Left(sPath, iNull - 1)
    End If
    SelectDirectory = sPath
End Function


......


  Dim olddb As String
  Dim Fs As FileSystemObject
  Dim BackUpFile As String
  Dim sPath As String
  sPath = SelectDirectory("请选择数据库备份保存的文件夹")
  If sPath <> "" Then
    olddb = App.Path + "\" + DBName
    BackUpFile = sPath + "数据库备份\" + "_" + DBName
    If MsgBox("你确定要备份当前数据库吗?", vbQuestion + vbOKCancel _
                + vbDefaultButton2, "请确认") = vbCancel Then
      Exit Sub
    End If
    Set Fs = CreateObject("Scripting.FileSystemObject")
    '拷贝数据库文件至指定位置
    Fs.CopyFile olddb, BackUpFile
    MsgBox "数据库备份成功", vbInformation + vbOKOnly, "信息"
  End If
--------------------编程问答-------------------- 标题含糊不明 --------------------编程问答-------------------- 用COMMONDIALOG通用对话框的showsave方法来得到一个完整的路径和文件名,然后剥离出路径来就可以了,挺简单的代码, 不写了
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,