次の方法で共有

コードを数字から文字に変更したらSQLクエリーがエラーになった

Anonymous
2024-01-03T07:21:30+00:00

お世話になります。

株式のコードが今年から英文字を含むコードが生まれるということで、今まで数字で登録していた株価データのコードを文字列のコードに変換しました。

テーブルとクエリーは一応変換しました。

レポートでチャートを表示するのですが、その過程でVBAでSQLクエリーを使っています。

数字コードのときは問題なかったのですが、文字コードに変えてからエラーが発生するようになりました。

VBAの一部抜粋です。

Dim DB As Database

Dim RS As Recordset

Dim SCODE As String

・・・

Set RS = DB.OpenRecordset("SELECT * FROM データ名 WHERE コード = " & SCODE & " ORDER BY 日付;")

ここでエラーになります。

 実行時エラー '3464'

 抽出条件でテータ型が一致しません。

なお、SCODEはフォームのテキストボックスから入力します。

データのテーブルのコードのデータ型は、短いテキスト、長さは4バイトです。

原因がまったくわからず、困っています。

よろしくお願いいたします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Makapu 92,110 評価のポイント ボランティア モデレーター
2024-01-03T08:53:31+00:00

ABC888さん、こんにちは。

文字列という事ですので、SCODE をシングルクォーテーションで囲う様にしてみて下さい。

Set RS = DB.OpenRecordset("SELECT * FROM データ名 WHERE コード = " & SCODE & " ORDER BY 日付;")

Set RS = DB.OpenRecordset("SELECT * FROM データ名 WHERE コード = '" & SCODE & "' ORDER BY 日付;")

<参考>

SQLの基礎の基礎 #MySQL - Qiita

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2024-01-03T10:53:33+00:00

    返信ありがとうございます。

    コードのところをシングルクォーテーションで動くようになりました。

    大変助かりました。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. simo-k 85,415 評価のポイント ボランティア モデレーター
    2024-01-03T07:28:06+00:00

    VBAの公式サポート場所は海外となっています。

    VBA(マクロ)に関しては、海外コミュニティで聞いて下さい。

    Stack Overflow(VBA)

      [VBA プログラミングに関する質問]

      Stack Overflow には、説明的なタイトル、完全で簡潔な問題ステートメント、問題を再現する
      ための十分な詳細の要求などのガイドラインがあることに注意してください。
      機能要求または過度に広範な質問は、トピック外と見なされます。
      新しいユーザーの場合は、Stack Overflow ヘルプ センター にアクセスして詳細を確認して下さい。

    ※ 閲覧者・回答者が多い公式サポートサイトをお勧めします。

      英語で質問を送信してください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません