• 締切済み

VisualBasicを使用してのデータ更新方法についてお教えください

VisualBasicをはじめたばかりの初心者です。 よろしくお願いいたします。 VisualBasicでは、データの更新(登録・修正・削除)を行う際、メゾッドを利用 してデータの更新を行う方法と、SQLを発行してデータの更新を行う方法があるこ とを書籍により知りましたが、具体的にどのように使い分ければいいのかよく理解できません。 皆さんは、どのような方法データの更新を行っているのでしょうか? 使い分けのポイント等があればお教えください。 よろしくお願いいたします。

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

メソッドを使うのは、DBから複数行のデータを受け取って、VB側でデータを1行ずつ処理していくような場合ですね。 どうしてもVB側で複雑な処理をしたいときにはレコードセットを使って処理するのがいいかとは思いますが、これをするとやり取りされるデータ量が増えてしまいますので、その辺で注意が必要です。 DBにAccessを使ってるのでしたら、この辺はあんまり気にしなくてもいいです。 SQLを使っても使わなくても、流れるデータ量に大差は無いですから。 この場合はどちらか使いやすい方を選べばいいでしょう。 SQL-ServerやOracleを使うんであれば、絶対にSQLを発行する方がいいです。

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

えぇと、データの更新とはデータベースの更新のことでしょうか? だとしたらメソッドとはRecordsetオブジェクトのUpdateメソッド等ですよね? 私はSQLを発行した方が早いという理由から、SQLを利用しています。 Updateメソッドは初心者には簡単なのかもしれませんが、実は裏でSQL文を発行していて、二重に時間がかかってしまう事になるんです(二倍というわけではありません) それに、Updateメソッドを使用すると、Recordsetの中身全てがデータベースに反映されてしまうのに対して、SQLだとそもそもRecordsetが必要なく、必要な部分だけ選択して更新することが出来ますよね。 ですから使い分けるとしたら、Recordsetを取得・更新してそれをデータベースに反映させたいならメソッドを、Recordsetを取得する必要はないけれど(もう閉じている場合もあるかもしれませんね)更新する時や更新するデータ量が極端に多い(少ない)時はSQL…という感じで使い分ければ良いのではないでしょうか? 登録・削除等も同じ感じだと思います。 長々と失礼しました。

関連するQ&A

  • データの更新方法について

    データを更新するときSQLで DeleteしてInsertする更新方法と Updateを行う更新方法とがあると思うのですが この使い分け、切り分けはどういう視点になるのでしょうか 私はDeleteしてInsertする方が簡単なので Delete + Insertをよく使っています。

  • データの更新

     失礼いたします。 JAVA初心者のjavateaです。 フォームからデータを入力してDBの更新を行いたいと思い、次のような計画を立てています。 1、フォームを作る 2、PHPでのMySQLへの接続法に倣い(PHPの参考書のみあるので)javaで接続。 3、フォームから値の受け渡しを作り、それに応じたSQL文を発行させる。 4、recurseし、自動的に更新する。 ここで、一番問題になるのは2番です。 タグ文章にjavaを埋め込む形でPHPと同じようにいくものなのでしょうか?javaでDBに接続を行いテーブルを表示することは出来ますので、データそのものを書き換える方法を教えていただければと思います。 よろしくお願いします。。('-'。)(。'-')。

    • ベストアンサー
    • Java
  • マスタデータ更新

    こんにちは。 システム開発の基礎的なところがわからないので、教えていただきたく、投稿させていただきます。 システム開発をほとんどやったことがないので、言葉が変なところもあるかと思いますが、宜しくお願いいたします。 サーバー上に、AというSQLServerのDBがあります。 今までは、システム管理者のみがAccessからA.DBのリンクテーブルを使い、マスタデータの更新/追加/削除を行っていましたが、今後、リーダークラスの人もできるようにしたい!という要望があり、そのインターフェース部分を作成しています。 いろいろと考え、フロントエンド側にAccessでB.mdbを作成し、そこには、A.DBと同じテーブル構造の一時TBLを作成し、B.mdbを開いた時にA.DBから全データを取得することにしました。(取得するところまではできています) ここから、設定するための画面作成をしますが、最終的に、更新/追加/削除されたデータは、どのようにA.DBにUPすればいいのでしょうか? 考えた方法として (1)B.mdb内に、一時テーブルとは別に、更に同じ構造の変更用テーブルを作成。 設定画面から更新/追加/削除されたデータは変更用テーブルに保存し、全ての処理が終了したら、変更用テーブルにあるデータを1つづつ見て、A.DBへ更新/追加/削除をかける (2)一時テーブルのデータを直接更新/追加/削除し、全ての処理が終了したら、全テーブルのレコードを1件づつ比較し、A.DBへ更新/追加/削除をかける というくらいしか思いつかないのです。 その他に思ったのが、一時テーブルもしくは変更用のテーブルに、レコード毎に「更新/追加/削除」がわかるようにフラグを設けて、そのフラグに従ったSQL文を発行する というくらいです。。。 根本的に、マスタデータに対する更新/追加/削除のやり方が間違っていたりしますか? 誰も聞ける人がいないので、どうぞ宜しくお願いいたします!!!

  • VisualBasicでレジストリキーの削除や作成などおこなう。

    VisualBasicでレジストリの削除を行うためにAPIを使いたいのですが、 VBで宣言するためのAPIがわかりません。 結構危険だと思うので、詳しく調べてから行おうと考えております。 書籍はレジストリだけでなく、VBで使うAPIの宣言方法を網羅した分厚くても良いので 詳しく書かれているものを探しているのですが、何かお薦めはあるのでしょうか?

  • SQLの更新方法について

    SQLの更新方法について 環境 OS:windows XP home sql server express2008 Microsoft SQL Server Management Studio 10.0.1600.22 現象 MS ACCESSからODBCを通してsql server express2008の中に作ったテーブル”TB01”にアクセスしていました。 あるときSQL Server Management StudioでTB01を削除しました。 ところがACCESSからODBCを通して接続すると削除したはずのテーブル”TB01”が見えていて リンクを張るとデータも出てきます、 ためしに新しくデータベースを作ってテーブルを作成してもODBCからは昔のままのテーブルしかありません。 SQL SERVERを再起動しても変わりません、どのようにすればSQLの内容を更新できるのでしょうか? どなたかお知恵を拝借願います。

  • postgreSQLで更新後のデータを取得したい。

    postgreSQLで更新後のデータを取得したい。 初めて質問させていただきます。 postgreSQLでupdateした後、更新後のデータをselectで取得したいのですが、 トランザクションが完了するまでにselect文が発行されているみたいで、更新前のデータを取得してしまいます。 それぞれ、違うファイルから投げられているので、同じトランザクションにすることはできません。 何かいい方法があればご教授お願いします。 a.phpで下記のSQLを発行 update test_tbl set test1 = 'aaa' where test2 = 'bbb' a.phpが走っている間に、下記のb.phpが実行される。 select test1 from test_tbl 環境 php5 postgres8.1

  • javaでのOracleのデータ登録の際の文字化け

    Windows2000上でjavaでの開発を行っています。 javaからOracle(OSはUnixだと思います)へデータを更新する際 「―」(全角のダッシュ」が「?」となって登録されてしまいます。 SQLを発行する時は「―」は文字化けしていません。 処理終了後テーブル内容を確認すると 「?」となって登録されています。 CSE(Common SQL Environment)でデータを更新したところ 文字化けは起こらず正しく「―」が登録されました。 javaで何か文字コード変換等を行う必要があると思うのですが 方法がわかりません。 ご存知の方がいらっしゃいましたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • データの更新判断

    この方面に詳しくないので用語などに間違いがあるかもしれません SQL Server2008 RC2 を使っています データベースに複数のデータ列が存在してデータ件数(レコード数)は不定です プログラムは VC2010にて自作  ODBC経由でアクセス データベースの構造はある程度自分で加工可能 データベースへの件数の削除・追加・更新は自作プrグラム以外からも行われる 自作プログラム以外には以外には極力影響与えたくない 上記データベースの件数の変化については現状 SELECT COUNT (*) FROM [データベース名]  のポーリングで件数の増減の検出 新規追加の判断に関してはデータ列の中に データ登録日を保存することで それをソートして処理していますが 何処かのデータの一部が更新されたというのを検出することは可能なのでしょうか?   ※ 判断したいのはデータの追加と更新だけで削除されたデータが     どういったものであったかを判断する必要はありません 更新データも全データを都度ポーリングチェックすれば判断はできるでしょうが データ件数によってレスポンス的に使えない代物になると考えています データベースの設定やプログラム的なもので対処できるものなのか 無理なのか(個人的に無理だと考えてる) 可能であればどういった方法で実現できるのか わかる方がいたら教えていただけないでしょうか (無理なら無理で構わない  ->  詳しい方の判断を求めたい) 内容に不足があれば補足させていただきます

  • 特定のデータ更新

    EXCELで作成した価格表について、特定の条件にマッチした商品のみの価格を修正したいと考えております。 具体的には、商品(価格表)の構成要素が色・形状・サイズ・価格となっており、現在やりたい事は、特定の形状とサイズの商品について値段を更新(現在の価格から400円プラス)したいと思っております。VBAで処理したいと思うのですが、どうすれば良いかわかりません。AutoFilterあたりを利用してデータ抽出・修正できそうなイメージなのですが、、、具体的にどうすれば良いかわかりません。 価格を更新する方法をご指導いただきたくよろしくお願い致します。 (ACCESSで言えば価格表の形状・サイズを抽出条件として価格を更新する更新クエリのような処理をEXCELのVBAで行いたいです。)

  • データの整合性について

    お世話になります。 皆さんからアドバイスをいただきたく投稿しました。 下記のような各マスタがあります。 店舗マスタ ・店舗コード ・店舗名 ・ジャンルコード ・削除フラグ ・登録日 ・登録者 ・更新日 ・更新者 ジャンルマスタ ・ジャンルコード ・ジャンル名 ・削除フラグ ・登録日 ・登録者 ・更新日 ・更新者 皆さんに聞きたい事はレコードデータに登録されているマスタデータの整合性についてです。 例えばジャンルマスタの下記のレコードが登録されているとします。 ・ジャンルコード:1000 ・ジャンル名:書籍 次に店舗マスタの下記のレコードが登録されているとします。 ・店舗コード:0001 ・店舗名:あいうえお書店 ・ジャンルコード:1000 ジャンルマスタからジャンルコードが「1000」のレコードを削除された場合に店舗マスタに登録されているジャンルコードが無くなってしまいます。このような事が起きないようにするにはどのような事をするのが正しいのでしょうか。 現在、私が考えているのは既に登録されているジャンルマスタの更新はジャンルコード以外は更新できるようにします。またジャンルマスタのデータの削除については既に店舗マスタに登録されている場合は削除できないようにする事を考えています。このような処理しか思いつきませんでした。 説明が下手ですみませんが理解していただけましたでしょうか。 どうが、皆さんのお知恵をお貸し下さい。またアドバイスをいただけませんでしょうか。 本当に申し訳ありませんが宜しくお願いします。

    • 締切済み
    • PHP