tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: MS-ACCESSの解放が出来ません(解決)
投稿日: 2016/02/03(Wed) 14:32
投稿者SUZUKI
魔界の仮面弁士さん、アドバイスありがとうございます
MSACCESSが消えてくれて感激しております

>   2016/04/12  延長サポート終了
> ということで、あと数ヶ月でサポート終了となる製品です。
>
> 2005 への変換と併せて、現行バージョンへの移行計画も
> 準備しておくことをお奨めします。

実はVB2005への変換で、他にもいっぱいつまずいておりまして
解決したら急ぎバージョンアップ検討します
自分だけ質問してもという事で調べてわからない時
またよろしくお願いします

>
> なお、上記にも書いていますが、移行作業とはいえ、DAO の継続利用は
> 個人的にはお奨めしていません。とはいえ今回は DML ではなく DDL の操作なので、
> DAO (または ACEDAO) を使うのも已む無しですかね。
>
DAOから離れないといけないのですが
知識不足です。がんばるしかないのですが

>
> > 記事NO.6555を見て.FIELDSを扱うのは解放が難しいと
> (全角半角、大文字小文字の使い分けは適切に)
>
了解です
統一するよう心がけます

>
> > DAODBEngine_definst
> これは UpgradeSupport で提供される、DAO.DBEngine 型の変数ですね。
> tblDefs = DB.TableDefs
> tblNew = tblDefs("DBDATA")
>
> flds = tblNew.Fields
> fld = flds(CC)
>
> のように扱うようにします。
>

        Dim dbe As New dao.DBEngine
        Dim DB As dao.Database
        Dim tblDefs As Object
        Dim tblNew As Object
        Dim flds As Object
  
        DB = dbe.OpenDatabase(DbName)
        tblDefs = DB.TableDefs
        tblNew = tblDefs("DBDATA")
        flds = tblNew.fields

にしたらうまく解放してくれました
一番のポイントは"DAODBEngine_definst"を使わない事でした
自動変換を信じると痛い目に会うという事ですね


> それと、今回は使用されていないので問題ないのですが、
> For Each も避けるようにしてください。For Each を使うと、
> 裏で IEnumerator のインスタンスが生成されることになるので、
> 使用するライブラリによっては、解放が難しくなるためです。
>

For Each も実はトライしていました
おかげで助かりました
ほんとに、ありがとうございました

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。