| | タイトル | : MS-ACCESSの解放が出来ません |  | 記事No | : 11619 |  | 投稿日 | : 2016/02/02(Tue) 13:33 |  | 投稿者 | : SUZUKI | 
 いつもお世話になっておりますVB6.0からVB2005への変換挑戦中の鈴木です
 またわからなくなり相談させて下さい
 MS-ACCESS(2003)の停止が出来なく困ってしまいました
 記事NO.6555を見て.FIELDSを扱うのは解放が難しいと
 指摘されている所です
 下記コードは列の追加のコードですが
 解放が出来ません
 階層の取り扱いで停止しないと思われるのですが
 変数化がよくわかっていません
 色々調べたのですが、よくわからずよろしくお願いします
 SUB
 Dim DB As dao.Database
 Dim TDFNEW As dao.TableDef
 Dim CC As Short
 Dim fieldflag As Boolean
 DB = DAODBEngine_definst.OpenDatabase(DbName)
 TDFNEW = DB.TableDefs.Item("DBDATA")
 fieldflag = False
 For CC = 0 To TDFNEW.Fields.Count - 1
 If TDFNEW.Fields(CC).Name = "A区分" Then
 fieldflag = True
 End If
 Next
 ' 新しく 1 つのフィールドを追加します。
 If fieldflag = False Then
 AppendDeleteField(TDFNEW, "APPEND", "A区分", dao.DataTypeEnum.dbText, 1)
 DB.Close()
 MRComObject(DB)
 MsgBox("A区分欄追加しました")
 Else
 DB.Close()
 MRComObject(DB)
 End If
 
 End Sub
 
 Sub AppendDeleteField(ByRef tdfTemp As dao.TableDef, ByRef strCommand As String, ByRef strName As String, Optional ByRef varType_Renamed As Object = Nothing, Optional ByRef varSize As Object = Nothing)
 With tdfTemp
 ' 更新可能かどうかを調べます。
 ' 更新可能でない場合は
 ' 呼び出しているプロシージャに制御を返します。
 If .Updatable = False Then
 Exit Sub
 End If
 ' フィールドの追加や削除を行います。
 If strCommand = "APPEND" Then
 .Fields.Append(.CreateField(strName, varType_Renamed, varSize))
 Else
 If strCommand = "DELETE" Then .Fields.Delete(strName)
 End If
 
 End With
 Exit Sub
 
 |