OleDbDataAdapterについて

解決


マグ  2004-08-25 04:04:37  No: 115850

メモ帳に何も記述しないで、ファイル名にTest.mdbと入力し、保存した後に、
OleDbDataAdapterでそのファイルを読み込んだのですけど、接続できませんでした。
っと色々試したのですが、出来ませんでした。

そこで、mdbファイルはどうやって作るんですか?
教えてください。
お願いします。


特攻隊長まるるう  2004-08-25 05:29:14  No: 115851

とりあえず OleDbDataAdapter 以前に
『テキスト  Access  インポート』辺りをキーワードに
グーグルで検索してアクセスデータのインポート・エクスポートの
知識をつけてもらって…(これはVBの知識ではありません Access 
の知識ですので他のサイトで学んで下さい)

ファイルの作成で VBA のサンプルは見つかったので載せておきます。
http://homepage.mac.com/sunagoh/lesson/db1.html
DAO を使ってますので[VB.NET]でもほぼそのままで使えると
思います。OleDbDataAdapter でテーブルの作成ができるか
どうかは調べた事ないですが、DAO ならできます。
http://www.accessclub.jp/dao/20.html
確かにコーディングはVBでできるんですけど、この辺りの情報は
Access 系のサイトに多いです。

テキストファイルからのインポートでうまい方法があるか?
…は詳しくないので他の方に任せます。


マグ  2004-08-25 20:46:50  No: 115852

MDBファイルは作成でき、接続に成功しましたが、
データが入っていませんでした。(TT)

あと、VB6で
Dim objMDB As DAO.Database
Dim objTDEF As DAO.TableDef
Dim objFLD As DAO.Field
なっていますが、VB.NETのソースに変える場合は、どのように変更すればいいでしょうか?

それともう一つ、VB6のソースをVB.NETに変えているのですけれど、エラーが発生してしまいます。
原因はなんでしょうか?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim objMDB As DAO.Database
        Dim objTDEF As DAO.TableDef
        Dim objFLD As DAO.Field
        Dim objRset As Object
        Dim strSQL As String
        Dim intI As Integer

        'MDBの作成
        objMDB = DAODBEngine_definst.CreateDatabase("C:\TEST.MDB", DAO.LanguageConstants.dbLangJapanese, DAO.DatabaseTypeEnum.dbVersion30)
        Listbox1.Items.Add("CreateDatabase")

        '作成確認
        If Dir("C:\TEST.MDB") = "" Then
            MsgBox("MDB作成失敗")
        End If

        'MDBのOPEN
        objMDB = DAODBEngine_definst.OpenDatabase("C:\TEST.MDB", False)
        Listbox1.Items.Add("OpenDatabase")

        'テ-ブル作成
        objTDEF = objMDB.CreateTableDef("TBL1")
        ListBox1.Items.Add("CreateTableDef")

        '項目生成
        objFLD = objTDEF.CreateField("Fld1", DAO.DataTypeEnum.dbText, 10)
        objTDEF.Fields.Append(objFLD)
        ListBox1.Items.Add("CreateField Fld1")

        objFLD = objTDEF.CreateField("Fld2", DAO.DataTypeEnum.dbText, 10)
        objTDEF.Fields.Append(objFLD)
        ListBox1.Items.Add("CreateField Fld2")

        objMDB.TableDefs.Append(objTDEF)
        ListBox1.Items.Add("TableDefs.Append")

        'データINSERT
        For intI = 1 To 5
            strSQL = "INSERT into TBL1 (Fld1,Fld2) values ('" & Format(intI, "0000000000") & "','AAAAAA');"
            Call objMDB.Execute(strSQL, DAO.RecordsetTypeEnum.dbOpenDynaset)
        Next
        ListBox1.Items.Add("Executeメソッドで5件INSERT")
        ListBox1.Items.Add("***********************")

        'データ抽出
        strSQL = "Select * from TBL1;"
        objRset = objMDB.OpenRecordset(strSQL, DAO.RecordsetTypeEnum.dbOpenDynaset)
        MsgBox("objRset.type=" & objRset.type)
        MsgBox("objRset.name=" & objRset.name)
        MsgBox("objRset.RecordCount=" & objRset.RecordCount)
        MsgBox("objRset.Fields.Count=" & objRset.Fields.Count)
        Do Until objRset.EOF
            ListBox1.Items.Add("Fld1=" & objRset.Fields.Item("Fld1").VALUE & " Fld2=" & objRset.Fields.Item("Fld2").VALUE)
            '& " Fld2=" & objRset!Fld2)
            objRset.MoveNext()
        Loop

    End Sub


ASAHI  2004-08-26 00:14:00  No: 115853

自分のソースを人にデバッグさせる気ですか?
せめてエラーとなった箇所とエラーメッセージぐらい書いた方がいいんじゃないですか?


マグ  2004-08-27 01:27:31  No: 115854

すみませんでした。
自己解決しました。

とんでもないことに一つだけ定義を忘れていました。


マグ  2004-08-27 03:28:24  No: 115855

追加質問です。

完成したのですけれど、自分では何処をどのように変ればいいか分かりません。
そこで、お願いがあるのですが、私が作った装置を使って、
何処をどのように直せばいいか教えてください。

あと、逆コンパイルや逆アセンブリは出来れば、しないでください。
あと、自己責任ということで使ってください。
それと、非公開の装置ですから・・・←自分が使うために作ったもの
なぜなら、私のホームページで無料配布しても言語をしていない方には
無意味な気がするし、それに、有料配布の仕方も知りませんし、一度もやったことがないし、
っと言うことで非公開にしました。

で、必ず、どこをどのように直せばいいかという返事をください。
お願いします。

ダウンロードページ:http://www.geocities.jp/dfgkthug/daunorodo.html
直接ダウンロード  :http://www.geocities.jp/dfgkthug/MDBsakusei.lzh


  2004-08-27 21:13:09  No: 115856

解決したなら、別で質問したほうがいいのでは?。

>で、必ず、どこをどのように直せばいいかという返事をください。
>お願いします。

かなり、他人まかせの気がします。


マグ  2004-08-27 21:34:44  No: 115857

そうなのですが、

実はどうしても、自分だけでは判断できない部分もあるのですが、
どうすれば、いいか分からなくて・・・

>かなり、他人まかせの気がします。

とはいっても、わずか、30分にして、このソフトの改良版が出来てしまいましたけど・・・
大幅に改良してしまいました。
このソフトはテーブルの追加が5つでしか出来ないのに対して、
改良版はテーブルの追加に制限がありませんから。

分かりました。
では、消しておきます。
自分でぼちぼち悪い部分を直しながら、使っていきます。


  2004-08-27 21:54:43  No: 115858

>とはいっても、わずか、30分にして、このソフトの改良版が出来てしまいましたけ>ど・・・
>大幅に改良してしまいました。
>このソフトはテーブルの追加が5つでしか出来ないのに対して、
>改良版はテーブルの追加に制限がありませんから。

わたくの頭では、理解しがたいのですが。
これは、なんのことを言っているのですが。

>実はどうしても、自分だけでは判断できない部分もあるのですが、
>どうすれば、いいか分からなくて・・・

ソースファイルが、あるならともかく、EXEファイルを実行し、
具体的に、何を判断するのかわからないのに、どこをどのように直せばいいかと
なんてわかりません。


マグ  2004-08-28 01:41:47  No: 115859

見易さとか操作しやすさなどを判断してもらいたかったのですが、
やっぱり、自分で判断することにしました。


?  2004-09-02 03:53:14  No: 115860

>見易さとか操作しやすさなどを判断してもらいたかったのですが、
>やっぱり、自分で判断することにしました。

それなら、質問しないほうが...


マグ  2004-09-02 17:28:01  No: 115861

自分で判断することにしましたから、
質問はやめることにしたんです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加