-

来自「介绍了数据库方面的基础知识」· 代码 · 共 139 行

TXT
139
字号
作者:Sure160
email: sure160@china.com
日期:2001-7-18 14:40:14
【例】编写一个Function 过程,对数据库中指定的对象进行本地化处理。

  Function SetKeepLocal(dbs As Database, strCollection As String, stffobJect As String) As integer

  Dim i As Integer

  Dim blnMatch As Boolean

  Dim tdf As TableDef

  Dim PrP As Property

  Dim doc As Document

  Dim qdf As QueryDef

  On Error GoTo ErrorHandler

  Select Case stalollection

   Case "FormS", "RelpOrtS", ''MOdllleS'', ''SCriptS`'

     Set doc = dbs.Containers(strCollection). Documents(strObject)

     Set prp = doc.Createproperty ("KeepLocal", dbText, `'T'')

     doc.Properties.Append prp

   Case "TableDefs"

     Set tdf = dbs.TableDefs(strObJect)

     Set prp = tdfCreateproperty (''KeepLocal'', dbText, ''T'')

     tdfprol)etties.Append prp

   Case ''QuecyDefs'`

     Set qdf=dbs.QueryDefs(sbrobject)

     Set prp = qdf.Createproperty ("KeepLocal", dbText, "T")

     qdf.properties.Append PrP

  End Select

ErrorHandler:

  Select Case Err

   Case 0

    case 3265 '对象未发现

    SetKeepLocal = 3265

    Exit Function

    '属性已经存在,把它设置为“T”

   Case 3367

    Select Case sttoollection

     CSSel ''Forms'' , ''RelportS'', ``Modlules'' , ''ScriptS'`

     doc.Properties(''KeepLocal'`).Value = `'T'`

   Case ''TableDefs'`

     tdf.Properties(''KeepLocal'').Value = `'T'`

   Case ''QueryDefs'`

     qdf.Properties(''KeepLocal'').Value = ''T'`

   Exit Function

  End Select

  SetKeepLocal = 0

  Exit Function

  Case Else

   MsgBOx ''Error'' & Err & ":", & Error, vbOKOnly

   SetKeepLocal=-1

   Exit Function

   End Select

  End Function

用上述过程可以对指定数据库对象建立并添加KeepLocal属性,如果该属性已经存在,则将产生代码为3367的错误,在这种情况下,将在错误处理程序中把该属性的值设置为“T” 

  该过程有3个参数,其中第一个参数是Database对象,第二个参数是集合的名字,第三个参数是数据库中的对象名。过程的返回值是一个整型数,它实际上是一个错误代码。为了调用上面的过程,可以在窗体上画一个命令按钮,然后编写如下的事件过程:

  Private Sub Command1_Click()

   Dim MyDb As Database

   Dim a As integer

   Set MyDb = OpenDatabase(''c:\dbdir\db1.mdb'')

   a = SetKeepLocal(MyDb, ''TableDefs'',''Tabel1'')

   If a = 0 Then

    MsgBox "已成功设置KeepLocal 属性"

   Elself a = 3265 Then

    MsgBox "对象未找到"

   Elself a = 3367 Then

    MsgBox "KeepLocal属性已存在,设置为“T”

   Else

    MsgBox“出错”

   End lf

  End sub

该事件过程调用SetKeepLocal过程,用来建立并设置数据库db1.mdb的TableDefs集合中Tabel1对象的KeepLocal属性。

  如果已经在数据库的两个表之间建立起关系,则必须将两个表的keepLocal属性设置为相同的值,即两个表都必须是本地的或者是可复制的。如果两个表的keepLocal属性设置不一样,则转换将会失败。但是应注意,不能在关系有效时设置keepLocal属性,也就是说,在设置属性之前,应先删除两个表之间的关系,在设置好KeepLocal属性之后再恢复两个表之间的关系,然后继续进行数据库转换。

  如果正在设置KeepLocal属性的对象已经从其它对象中继承了该属性,则由其它对象设置的值对保留为本地对象的操作没有影响,必须直接为每个对象设置keepLocal属性。 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?