• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access97 VBAにてレコードの検索)

Access97 VBAにてレコードの検索

このQ&Aのポイント
  • Access97 VBAを使用してレコードを検索する方法について教えてください。
  • フォームでのレコード追加時に重複を避けるためにレコード検索を追加したいのですが、コーディング方法がわかりません。
  • 社員マスターのキーを「部門_cd」と「社員_cd」に設定する場合、社員_cdだけではなく部門_cdのチェックも同時に行う方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.3

>findstring = "拠点CD ='5' And team_cd ='12'" これと >拠点CD = float型 Team_CD = float型 このことから >findstring = "拠点CD =" & "'" & [Forms]![F_top]![拠点_cd] & "' And team_cd =" & "'" & Me.team_cd & "'" これではダメです findstring = "拠点CD =" & [Forms]![F_top]![拠点_cd] & " And team_cd =" & Me.team_cd この様になります ※文字列型はシングルクォーテーション(')で括り、数値型の場合は括る必要がありません ※因みに日付型の場合はシャープ(#)にて括ります(Accessの場合)

nao_ton_v
質問者

お礼

ありがとうございまます。 今回のコーディングだけでなく、今後VBAを組んでいく上で非常に参考になります。

その他の回答 (2)

  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.2

これ? Dim findString As String findString = "部門_cd =" & " '" & Me.部門_cd & "' and 社員_cd =" & " '" & Me.社員_cd & "' " myrs.FindFirst findString 社員マスタのキーは社員コードで一意であるべきだと思いますが... 部署移動したときとかry)

nao_ton_v
質問者

お礼

ありがとうございます。 実は、IF分の組み合わせ(ネスト)で解決してしまいましたが明日会社で上記を試してみます。 確かに、悪い例でしたね。 部門コード・社員コードがキーのマスターなんてあまりないですよね。通常は社員コードが一意のキーでその属性として部門コードですもんね。 実は拠点コード・部門コードがキーとなるマスターでした(←最初から書けって感じですよね!)。

nao_ton_v
質問者

補足

すみません、昨日IF文の組み合わせで解決したかと思いきやそれはバグっていました。 で、ご回答いただいた通りにやってみたのですが、どうしても "抽出条件でデータ型が一致しません。" というメッセージでエラーになってしまいます。 デバッグモードでfindstringの値を確認したところ、 findstring = "拠点CD ='5' And team_cd ='12'" となっていますがこれでよろしいのでしょうか? 検索するテーブル(SQLサーバー): 拠点CD = float型 Team_CD = float型 パラメータ: [Forms]![F_top]![拠点_cd] ←拠点CD Me.team_cd ←team_cd 実際の記述は以下の通りです。 findstring = "拠点CD =" & "'" & [Forms]![F_top]![拠点_cd] & "' And team_cd =" & "'" & Me.team_cd & "'" 教えていただけないでしょうか?

  • ArukuMail
  • ベストアンサー率22% (115/510)
回答No.1

http://support.microsoft.com/default.aspx?scid=kb;ja;286242 こう言った問題もあるみたい コストはかかるけど Do Untile myrs.EOF myrs.movenext loop 内にレコードいどうさせてけんさくさせるてもあるです

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;286242
nao_ton_v
質問者

補足

早速のご回答、ありがとうございます。 myrs.FindFirst "社員_cd =" & " '" & Me.社員_cd & "' " ↑これは動きます。  また、部門_cdによる検索でも動きます。  要するに単独では機能するということでした。 部門・社員というた例えが悪かったのかもしれませんね。 私の質問の仕方に不備があれば何なりとご指摘ください。

関連するQ&A