- ベストアンサー
Access VBの検索をする命令でエラー
bin-chanの回答
> テストを終え本番切り替え時にエラーが出る。 テスト環境と本番環境をどう区分け・切り替えされているのか、非常に気になりますね。 テスト環境と本番環境のテーブル[講座開始日時テーブル]の内容を 比較・確認できないのですか?
関連するQ&A
- VB6.0DataGridでのUpdate文で疑問?
ADOの勉強したばっかりで、あまり詳しくありませんのでよろしくお願いします。 DataGridを使ってある条件で抽出しています。その抽出したものを更新したいのですが、 Do rs!分類ID = text1 rs.Update rs.MoveNext Loop Until rs.EOF という命令を書くと、いいような気がするのですが、なぜか抽出したデータが一個おきに書き換わります。 でも、 Do rs!分類ID = text1 rs.Update rs.MoveNext if rs.EOF then rs.Previous END IF Loop Until rs.EOF と命令するとすべてのデータが書き換わります。 なぜなんでしょうか?疑問です。 VB6.0、ACCESS2000です。
- 締切済み
- その他(プログラミング・開発)
- Access97で「パラメータが少なすぎる」のエラーとは?
Win98SE、VB6.0+SP3からAccess97のmdbを読んで処理するプログラムで、 On Error GoTo Err_Hndr Set db = OpenDatabase(sDatabase) sSQL = "select * from station WHERE compare.[stationNo] = 1;" Set rs = db.OpenRecordset(sSQL, dbOpenSnapshot) このSet rs文のあと、エラールーチンに飛んでしまいます。 エラーコードは3061(パラメータが少なすぎます。1を指定して下さい) です。 このエラーはどういう意味で、どうやって解決すればいいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- 命令を変数に応じて変化させるには?
「テーブル1」というテーブルの「データ」というフィールドにA~Jまで10個データが格納されていたとします。 このデータを変数 DATA01~DATA10 にそれぞれ格納したいと思っています。 下記ソースでは、レコードの終端までループしても、DATA01に「テーブル1」の1レコード目の値、"A"しか格納できませんが、これをDATA02に"B",DATA03に"C"・・・と順々に格納するにはどうしたら良いのでしょうか? それぞれの変数に応じた命令を一つ一つ書くのではなく、Countの値に応じて命令そのものを変化させて行いたいと思っています。他の言語ではわかるのですが、VBではどうするのかわかりません。 ご指導程お願い致します。 Private Sub テスト_Click() Set DB = CurrentDb Set RS = DB.OpenRecordset("テーブル1") Count = 1 Do Until RS.EOF DATA01 = RS!データ RS.MoveNext Count = Count + 1 Loop End Sub
- ベストアンサー
- Visual Basic
- Access2002 VB がエラー
Access2002 VBで以下のコーディングをしてます Dim db As Database Dim rs As Recordset Dim fld As Field Set db = CurrentDb Set rs = db.OpenRecordset("ConvertChar") これを実行するとdb宣言行で以下のエラーが表示されます。 コンパイルエラー: ユーザ定義型は定義されていません。 これは何が原因でエラーとなるのでしょうか? 宜しくお願いします。
- ベストアンサー
- Visual Basic
- ExcelVBAでAccessのデータを検索する
Excel VBA で、ADOを用いてAccess のデータを検索するにはどうしたらいいですか。 やりたいこと 検索結果を、Excel のセルにコピーすること。 ソースコード 'MDBファイルに接続します Set db = New ADODB.Connection db.Provider = "Microsoft.Jet.OLEDB.4.0" db.Open "C:\Database\test.mdb" 'レコードセットを開きます Set rs = New ADODB.Recordset 'テーブルを開きます rs.Open "PT_MST", db, adOpenForwardOnly, adLockReadOnly findName = ws.Cells(i, 1) & ws.Cells(i, 2) Do ' rs.Find "[S_NUM]='" & findName & "'" rs.Find rs.Fields(1).name & " Like '20k%'" ← ここで、サポートしていない旨のエラーが出る。 If Not (rs.EOF) Then Debug.Print rs.Fields(1).Value Else Exit Do End If rs.MoveNext Loop Until rs.EOF '閉じる rs.Close db.Close '終了処理 Set rs = Nothing Set db = Nothing どう直したら、検出結果を取得できますか。 ご教示下さい。
- ベストアンサー
- Visual Basic
- ADOによる検索条件の書き方(アクセス2003)
以下のようにADOを使った検索で, (1)と(2)の条件ではそれぞれうまくいくのですが、二つをつなげた(3)の条件ではエラーになります。なにが問題なのでしょうか criteria = "[年月] = '2013/10'"...........(1) criteria = "[部署ID] = 9".................(2) criteria = "[年月] = '2013/10' and [部署ID] = 9".........(3) rs.Find criteria
- ベストアンサー
- その他MS Office製品
- VB初心者ですAccessを更新したいのですが
VB初心者です、よろしくお願いします。 VBでAccessのレコードの一項目を更新したいのですが出来ません。 抽出条件からAccessのデータを持ってきた後、更新したいのですがどうすればいいのでしょうか? 因みに抽出条件までは変更できません、AddNew以降でお願いします。 VB6でAccess2003です。 エラーは現在のRecordsetは更新をサポートしておりませ。プロダイバーかロックタイプの限界の可能性があります。 Set rst = New ADODB.Recordset '処理をするテーブル指定 rst.Open "[**]", db, adOpenStatic, adLockOptimistic With rst .MoveFirst .Filter = "" criteria1 = "" criteria1 = "**= '" & Module1.** & "'" .Filter = criteria1 If .RecordCount = 0 Then MsgBox "は登録されていません" Else .Filter = "" criteria2 = "" criteria2 = "**= '" & Module1.** & "' " .Filter = criteria2 If .RecordCount = 0 Then MsgBox "登録されていません" Else .Filter = "" criteria3 = "" criteria3 = "**'" & Module1.** & "' " .Filter = criteria2 If .RecordCount = 0 Then MsgBox "登録されていません" Else Module1.** = rst.Fields("**") .AddNew .Fields("***") = Module1.** .Update End If End If End If End With
- ベストアンサー
- Visual Basic
- VBでACCESS(アクセス)にSQLを発行したときのエラーについて
VBでアクセスのデータにSQLを発行してテーブルに更新等の処理をしています、削除や検索では該当するレコードがないとエラーコードが返りますが、挿入の場合はすでにあるデータに重複するデータを登録する(二重登録)処理をしてもエラーになりません? なにもメッセージがないので登録されたのか、だめだったのかを判断することができません、このような場合に二重登録の判定をするには先に検索をして当該データの有無を調べた後に登録処理にを行うようにするしかないのでしょうか?(同じことが更新についてもあてはまります) データの挿入にはjetSQLのinsert intoステートメントを使用しています データの更新には同updateステートメントを使用しています
- ベストアンサー
- Visual Basic
- エラー時の MsgBox の出し方
VB5 WIN2000 です。 おはようございます。初心者の質問で申し訳ありませんが、宜しくご指導頂きたいと思います。 MsgBoxの質問です。顧客管理表を作っていますが、存在しない顧客番号等を検索をした時に 《実行時エラー'3021': カレントレコードがありません》 というエラーが出ます。これを、 MsgBoxで、「データーは存在しません。」という感じで表示できるようにするには、どのようなコードを書けばいいでしょうか? ちなみに今は、データを抽出できた時に rs.MoveNext If rs.EOF Then MsgBox "(^ω^)Already at end of recordset!" rs.MoveLast Exit Do End If Loop というメッセージを出すようにしてます。 これの後に続くコードとしては、どのような感じにすれば・・? BOFとかも考えたのですが、さっぱりうまく動きません・・。 どうかご指導宜しくお願いします。
- ベストアンサー
- Visual Basic
- VB6でのファイル作成方法
VB6.0でファイルを作成するにはOPEN命令を使用しますが、その時ファイル最後尾にEOFコードが入ってしまいます。このEOFコードが入らない様にするにはどうしたら良いか?試行錯誤していますが、どうにもうまくいきません。 どなたか分かる人がいたら教えて欲しいのですが・・・。
- ベストアンサー
- Visual Basic
お礼
ありがとうございました。 「テスト環境と本番環境のテーブルの内容を比較・確認できないのですか」 と言っていただき、本番のDBとテストのDBの問題の個所の項目名(フィールド名) を比較したところテストの項目名が変更されていました。 本番のソフト・データを全てコピーしてテストを開始していましたが、 何回も問題の個所で止まってしまい原因がわからないまま思考錯誤をして いる間に、変更されていました。 criteria で使用する名称に()付の名称がつけてありましたがcriteriaでは 使用できないことが判明し()付の名称を修正し全て解決できました。 適切なアドバイス本当にありがとうございました。