- - PR -
FindFirst
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-25 14:27
今まで、Accessを使っていましたが、今回からVBを使ってプログラミングをしています。
2つのテーブルがあり、一つがコードマスタテーブルで、もう一つが新規のコードマスタテーブルです。 新規のコードマスタテーブルをループさせ、コードマスタテーブルにあれば更新、無ければ追加。という処理を行おうと思っています。 accessならfindfirstを使ってすぐに処理できるのですが、VBの場合、どのようにすればよいか分からず、困っています。 どなたかご教授お願いします。 | ||||
|
投稿日時: 2005-11-25 22:56
質問の意図がよく見えないのですが、SQL 文2つで実現できるんじゃないかなぁ?
UPDATE 新規 SET 忘れた(^-^; WHERE 新規.識別子=旧.識別子; INSERT INTO 新規 (SELECT * FROM 旧 WHERE 識別子 NOT IN (SELECT 新規.識別子 FROM 新規)); これを発行してやればいいですよね?ってことじゃないの? ___________________________________________________________________ □ written by Jitta on 2005/11/25 □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2005-Sept.2006 _________________ | ||||
|
投稿日時: 2005-11-26 06:23
利用環境をもう少し詳しく説明してください。 VB6, VB.NET ? ADO, ADO.NET 1.x, ADO.NET 2.0 ? この辺の利用環境を明確にしてください。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2005-11-26 08:18
Jittaさん、Accessさん返信ありがとうございます。
環境は、VB.NET2003、データベースがACCESS 2000、ADO.NET(1.xか2.0かはわかりません) 具体的に言いますと、 THINMOBという、新規品目コードを格納するテーブルがあり、 THINMOという品目コードのテーブルへ、品目コードが合致すれば、更新、なければ追加 という形を取りたいのです。 従来accessならば、 rs(THINMOB) rs1(THINMO) do until rs.EOF rs1.findfirst"品目コード = '" & rs1!品目コード & "'" if rs1.nomatch then db.excute"insert into〜 else rs1.edit ・・・ end if rs.movenext loop というコードを書いておりました。 ただ、VBではfindfirstを使えないとのことなので、 どのように処理すればよいのか、困っております。 | ||||
|
投稿日時: 2005-11-26 10:14
DataTable.Select使えば済む話なんじゃないの? _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||
|
投稿日時: 2005-11-29 12:36
返事が遅くなりまして、申し訳ありません。
自分であれから色々やってみたのですが、 Jittaさんのおっしゃる通り、SQLを書くだけで解決すると思います。 ただ、非力なもので、SQLがうまく書けません。 どなたかご教授願います。 THINMO 新規品目データテーブル THINMOA 品目データテーブル 1. 品目コードがTHINMOにあって、THINMOAにないものを、THINMOAにインサート cn.Execute("INSERT INTO THINMOA " & _ "(SELECT * FROM THINMO WHERE 品目コード NOT IN " & _ "(SELECT THINMOA.品目コード FROM THINMOA))") cn.Execute("Insert into THINMOA select * from THINMO")は、正常に作動します。 insert into構文のエラーだと考えられます。 | ||||
|
投稿日時: 2005-11-29 12:56
括弧が余計なような気がします・・・ cn.Execute("INSERT INTO THINMOA " & _ "SELECT * FROM THINMO WHERE 品目コード NOT IN " & _ "(SELECT THINMOA.品目コード FROM THINMOA)") | ||||
|
投稿日時: 2005-11-30 07:35
かめたろさん、ありがとうございました。
もう少し冷静になって、見直すべきでした。 ありがとうございます。 |
1