タイトル | : 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
|