Office中国论坛/Access中国论坛

标题: 如何在数据备份时用ACCESS源码实现对数据库的关闭 [打印本页]

作者: liangjing    时间: 2006-4-10 23:38
标题: 如何在数据备份时用ACCESS源码实现对数据库的关闭
我在做一个数据备份和恢复的模块, 在做备份老是提示这个数据库已经打开了, 要求关闭这个数据库,  但我已经写了源码来关闭数据库,

但是还是报同样的提示,  我的关于关闭数据库源码如下:

   Dim dbYY As ADODB.Connection
   set dbyy=  CurrentProject.Connection

   dbyy.close
   Set dbYY = Nothing

  请给予指正!!
作者: andymark    时间: 2006-4-10 23:52
试试

Dim dbYY As new ADODB.Connection



作者: liangjing    时间: 2006-4-11 00:10
还是不行!
作者: andymark    时间: 2006-4-11 00:17
把例子发上来,光看上面的语句判断不了
作者: liangjing    时间: 2006-4-11 00:34
例子如下:[attach]17028[/attach]

作者: fan0217    时间: 2006-4-11 04:31
应该使用:CloseCurrentDatabase

以下示例通过 Automation 从其他应用程序打开一个 Microsoft Access 数据库,在其中创建一个新窗体并保存它,然后关闭该数据库。

可以将这段代码添加到任何能够作为 COM 组件的应用程序的 Visual Basic 模块中。例如,可从 Microsoft Excel 或 Microsoft Visual Basic 中运行下面的代码。

当指向 Application 对象的变量超出范围时,它所表示的 Microsoft Access 实例也将关闭。所以,必须在模块级说明这个变量。
  1. ' Enter following in Declarations section of module.

  2. Dim appAccess As Access.Application



  3. Sub CreateForm()

  4.     Const strConPathToSamples = "C:\Program Files\Microsoft Office\Office11\Samples"



  5.     Dim frm As Form, strDB As String



  6.     ' Initialize string to database path.

  7.     strDB = strConPathToSamples & "Northwind.mdb"
复制代码


  1.     ' Create new instance of Microsoft Access.

  2.     Set appAccess = CreateObject("Access.Application")
复制代码


  1.     ' Open database in Microsoft Access window.

  2.     appAccess.OpenCurrentDatabase strDB
复制代码


  1.     ' Create new form.

  2.     Set frm = appAccess.CreateForm
复制代码


  1.     ' Save new form.

  2.     appAccess.DoCmd.Save , "NewForm1"
复制代码


  1.     ' Close currently open database.

  2.     appAccess.[b]CloseCurrentDatabase[/b]
复制代码


  1.     Set AppAccess = Nothing

  2. End Sub
复制代码


作者: andymark    时间: 2006-4-11 04:36
分开前后端,只备份后端


作者: nxjswt    时间: 2006-4-11 05:08
还可以在专做一个新的恢复数据库,用于恢复
作者: liangjing    时间: 2006-4-11 20:22
还是不行! 关了数据库后就啥活都不干了!
作者: fan0217    时间: 2006-4-11 21:00
建议你将数据库拆分,只备份后台就可以了.
作者: duckula    时间: 2006-4-12 21:39
10楼说的对,我就这么做的
作者: nxjswt    时间: 2006-6-20 05:59
可以这样备份

Dim A, b, c, fs
    b = Format(Now, "yyyymmddhhmm")
    A = CurrentProject.Path
    c = A & "\backup\h2bak明细账删除前" & b & ".mdb"
   
    Set fs = CreateObject("Scripting.FileSystemObject")
   
    fs.copyfile A & "\h2.mdb", A & ".\backup\h2bak明细账删除前" & b & ".mdb"
   
    MsgBox "本系统已自动备份至" & c, vbInformation, "注意"




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3