none
mdbへ新しいデータの追加方法 RRS feed

  • 質問

  • はじめまして。

    AccessDatasourceを使用して、

    既存のmdbへの接続をし、データの表示や検索は出来たのですが

    新しいデータを追加する方法がわかりません。。。

    ページ上にテキストボックス等を配置して、そのテキストをmdbに書き込みたいのです。

    どなたか教えていただけませんでしょうか?

    詳しく解説されているサイトもご存知であれば、お願いいたします。

    2006年5月3日 5:47

すべての返信

  • >AccessDatasourceを使用して、

    AccessDataSourceは読み取り専用だったと思うので、自前でADO.NETで接続してデータを挿入してください。

    型付データセットのテーブルアダプターに、SQLを記述したら一行INSERTするメソッドまで作ってくれますので楽だと思います。

    2006年5月3日 6:10
  • ご回答ありがとうございます。

    「ファイル」・「新しいファイル」から「データセット」を選択し、

    接続したいmdbのConnectionstringsを選択し

    Dataset1.xsdが作成されるところまでは出来ました。

    Dataset1が作成された状態で、ビルドしようとすると

    「入力 xml ファイルの内容を DataSet に変換できません。

    名前の先頭に '0' (16 進数値 0x30) を使用することはできません。」

    とエラーが出て、ビルドが出来ませんでした。

    2006年5月3日 6:53
  • >詳しく解説されているサイトもご存知であれば、お願いいたします。

    英語になってしまいますが、以下が参考になると思います。

    Editing with a Repeater
    http://msconline.maconstate.edu/tutorials/ASPNET2/ASPNET09/aspnet09-07.aspx

    2006年5月3日 8:56
    モデレータ
  • ご回答いただき、ありがとうございます。

    ですが、からきし英語がダメなので・・・ギブアップです。

    で、試しにAccessDataSourceでInsert句も作成して

    ボタンコントロールのイベントに「AccessDataSource.Insert()」として実行したら

    「1 つ以上の必要なパラメータの値が設定されていません」となってしまいました。

     

    AccessDataSourceのInsertクエリで、クエリを設定しパラメータも指定してあります。

    クエリービルダーでは問題なく書き込めるのですが、

    ページ上からだとエラーになってしまいます。

    AccessDataSource()のカッコの中に何か入れないといけないのでしょうか?

    2006年5月3日 11:39
  • >AccessDataSource()のカッコの中に何か入れないといけないのでしょうか?

    例えば、以下が参考になると思います。

    ControlParameter コンストラクタ (String, String, String)  
    http://msdn2.microsoft.com/ja-JP/library/9set0xk5.aspx

    上記において、InsertParameterをAddする前に、AccessDataSource1.InsertParameters.Clear()をしておいた方が良いと思います。

    #追記
    ちょうど、参考例がありました。
    http://jibun.atmarkit.co.jp/scenter/ittrain/111_20060404_q.html

    また、

    AccessDataSource1.InsertParameters.Add("hoge", TypeCode.String, "");
    AccessDataSource1.InsertParameters["hoge"].DefaultValue = TextBox1.Text;

    でも、

    AccessDataSource1.InsertParameters.Add("hoge", TypeCode.String, TextBox1.Text);

    でもいけそうです。(未検証)

    2006年5月3日 12:44
    モデレータ
  • 参考例まで出していただいて、ありがとうございます。

    例を参考に記述してみましたが、

    今度は、別のエラーが表示されました。

    ・InsertCommandを指定(SQL文)

    ・パラメータをクリア

    ・パラメータを指定

    として、この後にAccessDataSource1.Insert()としているのですが

    「更新可能なクエリであることが必要です。」とエラーになってしまいます。

    クエリーの書き方・設定がおかしいのでしょうか?

    2006年5月3日 13:17
  • >クエリーの書き方・設定がおかしいのでしょうか?

    その可能性が大きいのではないでしょうか?とりあえず、以下を参考にしてみて下さい。

    Access クエリや Access フォームでデータを更新すると発生するエラーをトラブルシューティングする方法
    http://support.microsoft.com/default.aspx?scid=kb;ja;328828

    2006年5月3日 14:56
    モデレータ
  • 皆様、いろいろとご教授ありがとうございました。

    おかげで、何とかデータの追加に持ち込めました。

    「更新可能なクエリー・・・」は初歩的なミスでした

    APP_Dataのアクセス権の「書込み」許可をしていませんでした・・

    クエリービルダーでは書込み出来たと言う事は

    クエリービルダーではアクセス件は関係無いのでしょうか・・

    何にせよ、解決できました。

    2006年5月4日 5:46