Do While Not rs.EOF
If Text1(0).Text <> rs.Fields(1) Then
/*--*--*/
rs.MoveNext
Else
msg = "コードが重複しています."
MsgBox msg, vbOKOnly, "重複チェック"
Text1(0).Text = ""
Text1(0).SetFocus
End If
Loop
*------
text1(1) = rs.fields(1)
text1(2) = rs.fields(2)
-------*
データベース(Access)にデータが3件入っていて、例えば、1件目のデータを更新したいのですが今のソースでは、/*--*--*/でデータベースを次々読んでいるので、3件読み終えたときにカレント行が4件目にあると思うので、それを”任意”の行にしたいのですが教えてください。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
まずちょっと変更したほうがいい点です。
>If Text1(0).Text <> rs.Fields(1) Then
↑のような条件判定をレコードごとに行うのはよくありません。
今は3件だけかもしれませんが、1000件のデータを対象にすると
時間がとてもかかります。
SQLでwhere句で条件を指定してもっとレコードを絞り込むべきです。
>それを”任意”の行にしたいのですが教えてください。
なぜ任意にしたいのでしょう。
SQLを再発行するとか、MoveFirstを使用してはだめなのですか?
この回答への補足
それじゃあ、ちょっと言い方を変えます。ACCESSにデータが10件は入っていて、5行目のデータを取り出したいときにはどうすればいいですか?
moveXXXでないですか?
No.2
- 回答日時:
こんにちは。
maruru01です。ちょっとお聞きしたいんですが、
どういう条件で、"5行目"を取り出すのでしょうか。
どこかのフィールドの値がある条件のデータでしょうか。それなら、Findを使えばいいと思います。
それとも、"行数"が問題なんでしょうか。でも、行数は、Accessでテーブルをいじってしまう(ソート)と変わってしまいますけど。
データの内容に関係なく移動するのはMove系(先頭、前、後ろ、末尾)で、任意の条件での移動はFindになります。
補足をお願いします。
では。
この回答への補足
そうですね、”行数”が問題になっています。ACCESSのテーブルはいじらないとおもってください。
今問題になっているのが”データ更新”のところなんですが??
/*** ***/
ここで、データがある文だけ最初から探しているので、例えば、データが10件入っていて、1行目のデータを変更するときは、/###/のところにmovefirstをつかえばいいのですが、3件目のデータとかの場合はどうすればいいのですか??
/*注意*/
textxは1~15までが入っていて、だから15個このようなプログラムがあります。
If Textx(0).Text <> rs.Fields(1) Then
'重複チェック
rs.MoveFirst
Do While Not rs.EOF
If Textx(0).Text <> rs.Fields(1) Then
/***
rs.MoveNext
****/
End If
Loop
End If
/#####/
rs.Fields(1) = Textx(0).Text
No.3
- 回答日時:
再びmaruru01です。
もし、Accessのそのテーブルのレコードを、
変更や追加はするが、削除はしない
ということであれば、そのテーブルに新しく数値のフィールドを作って、一番上のレコードから順に、
1,2,3・・・
という風に連番をつけてはどうでしょう。
そうすれば、Findを使って、そのフィールドの値で検索出来ます。
連番は、15個ぐらいなら手入力出来ますし、もし実はレコードが多いということなら、コードで書いて実行してもいいと思います。
では。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) テーブルを配列に入れて、元のテーブルの行番号を取得したい 1 2022/08/16 20:15
- Visual Basic(VBA) 配列にしたセル範囲でのコメントがあるかどうかを取得するコードの書き方 2 2022/09/17 05:09
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPのNULLレコード表示について...
-
レコードが存在しなかった場合
-
ファイル書込みで一行もしくは...
-
Access を×ボタンで閉じ...
-
ADO VBA 実行時エラー3021
-
DataGridViewの内容をDBに反映...
-
アクセスでレポートの1印刷内...
-
Accessでレコードの更新を任意...
-
レコード長を数えてくれる関数
-
[VBA] ADOの Clone と AddNew
-
サブフォームに新規レコードを...
-
レコードセット(ADO.Recordset)...
-
Access でレコードセレクタが押...
-
差し込み印刷のレコード数について
-
サブレンジ分割されたNDB(富士...
-
SYLKファイルフォーマットについて
-
桁数を指定してファイルデータ...
-
ACCESSで大量の更新を行うと「...
-
DataGridViewの、選択されてい...
-
データベースへのinfoの入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ADO VBA 実行時エラー3021
-
カレントレコードが無い事を判...
-
レコードが存在しなかった場合
-
ファイル書込みで一行もしくは...
-
DataGridViewの内容をDBに反映...
-
差し込み印刷のレコード数について
-
ワードの差込印刷で教えて下さ...
-
レコードセット(ADO.Recordset)...
-
アクセスでレポートの1印刷内...
-
JSPのNULLレコード表示について...
-
Access でレコードセレクタが押...
-
Line Inputで文字化け(助けて...
-
ヘッダレコードとトレーラレコ...
-
DataGridViewの、選択されてい...
-
サブフォームに新規レコードを...
-
ACCESSで大量の更新を行うと「...
-
[VBA] ADOの Clone と AddNew
-
DataGridViewにてセル以外をク...
-
サブレンジ分割されたNDB(富士...
-
VB6.0のIsNull関数に相当するもの
おすすめ情報