![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
こんにちは、Blackwinglsです。
以下のようなテーブルがあります。
所属マスター
所属コード 所属名
010 本社
100 東京
110 大阪
200 福岡
300 札幌
400 秋田
所属コード 所属名 ともに文字列にて定義、主キーはなし。
これをフォームのコンボボックスより開始所属~終了所属で抽出条件を指定して取り出して、別途作成した所属一覧表というレポートに渡したいのですが、うまくいきません。
コンボボックスは、所属コード、所属名を表示(所属コードは0cm)しています。
印刷時のコードは
DoCmd.OpenReport "所属一覧表", acViewPreview, , "所属コード Between " & Me.開始所属 & " and " & Me.終了所属
とすると、
抽出条件でデータ型が一致しません
とでます。
あれと思い、
MsgBox Me.開始所属
MsgBox IsNumeric(Me.開始所属)
とすると
MsgBox Me.開始所属 は、010 が表示され
MsgBox IsNumeric(Me.開始所属) は、true (数値)が表示されます。
MsgBox Str(Me.開始所属)
MsgBox IsNumeric(Str(Me.開始所属))
としてみましたが、
MsgBox Str(Me.開始所属) は、10 が表示され
MsgBox IsNumeric(Str(Me.開始所属)) は、true (数値)が表示されます。
Me.開始所属 で取り出した値が、なぜ数値になっているのか理解できません。
また、Str(Me.開始所属) としても数値のままなのは何故なのでしょうか?
ps accessのSQL画面の抽出条件に、Between "010" And "200" では正常に動きます。
No.1ベストアンサー
- 回答日時:
DoCmd には、↓の用に入れましょう。
DoCmd.OpenReport "所属一覧表", acViewPreview, , "所属コード Between '" & Me.開始所属 & "' and '" & Me.終了所属 & "'"
今のままだと、Where文が
[ Where Between 010 and 200]
↑になってしまい、直接数値で条件を指定していることになります。
SQL文なら、文字列は基本的に「'」シングルクォーテーションでいいと思います。
あと、Str()についてですが
Strに合わせて[F1]を押すとヘルプが出てくると思いますが
そこに、書いてある事を見ればなんとなくわかると思います。
引数に、数値を代入する仕様になっている為
数値に変換されたものを、バリアント型で返しているからです。
文字列型にしたいのであれば、
Format()を使った方が良いと思います。
一度、試してみてください。
ご回答ありがとうございます。
> DoCmd.OpenReport "所属一覧表", acViewPreview, , "所属コード Between '" & Me.開始所属 & "' and '" & Me.終了所属 & "'"
を見た瞬間、思わず声が出てしまいました。
なんでこんな事に気がつかなかったんですかねえ。
大変役立ちました。
感謝いたします。
No.3
- 回答日時:
DoCmd.OpenReport "所属一覧表", acPreview, , "Val(所属コード) >=10 AND Val(所属コード) <=100"
DoCmd.OpenReport "所属一覧表", acPreview, , "所属コード >='010' AND 所属コード<='100'"
DoCmd.OpenReport "所属一覧表", acPreview, , "所属コード BETWEEN '010' AND '100'"
DoCmd.OpenReport "所属一覧表", acPreview, , "所属コード IN ('010','100')"
4番目は非現実てきですが、残りの3つは目的を達すると思います。
冒頭の Val("010")=0 と思ったのですが、所属コード=10 を表示したので驚きです。
参考までに!
ご回答頂きましてありがとうございます。
BETWEEN 以外の処理は頭になかったので参考になりました。
今後もよろしくお願いします。
No.2
- 回答日時:
こんにちは。
「文字列はシングルクォーテイテョンで囲む」との回答は出てますので、ISNUMERICについて少々。
ヘルプには「引数が数値と評価できればTRUEを返す」と書いてありますね。
言い換えると「数値と評価できれば」たとえ「文字列」であっても「TRUE」返すということです。
例えば、以下のように文字列で宣言してあっても、全角数字でも「TRUE」が返る。
Sub test()
Dim S As String
S = "234" '(全角数字)これは数値と評価できるのでTRUE
MsgBox IsNumeric(S)
End Sub
これで質問のISNUMERICでなぜTRUEが返えるのかお分かりになりましたね。
そして今回のような判断にはISNUMERIC関数は適さないということも。
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- その他(Microsoft Office) Excelの表記ゆれについて <状況詳細> 7000人を対象とした一覧表があり、それぞれが各支社やチ 2 2023/06/02 15:08
- 正社員 正社員として在籍している所属会社から取引先に派遣という形で仕事をしてます。 自分の所属会社は年末年始 2 2022/10/20 15:01
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
- 邦楽 LDHのアーティストの人気について 1 2022/12/14 21:40
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- 行政学 質問です政治の。 2 2022/11/27 23:18
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大手芸能事務所は、多くは暴力...
-
ベストワンプロって??
-
元AV女優の周防ゆきこは今何し...
-
IMALU(イマル)は、何か...
-
アミティープロモーションにス...
-
五合・・・・ごんごう?
-
木村拓哉って在日朝鮮人?工藤...
-
森口博子の怖ろしさ
-
慣用句
-
文章で小文字の「ぁ」や「ゎ」...
-
リアルでは美人で可愛くめっち...
-
橋本環奈って何でつかわれるん...
-
橋本環奈さん細いのにこういう...
-
気の強そうな3文字の女子の名前...
-
梶芽衣子さんの過去の写真集に
-
タレント等のマネージャーは何...
-
温泉好きのタレントさん
-
娘がされたスカウトは詐欺でし...
-
新百合ヶ丘出身。
-
歌舞伎役者さんにファンレター...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大手芸能事務所は、多くは暴力...
-
おすすめのエロ漫画を教えてく...
-
升水美奈子さんについて
-
相変わらず、吉本は、ゴリ押し...
-
山岡みどり芸能界引退した理由 ...
-
ウォーターボーイズに出ている...
-
私は今ライバー事務所ビーバー...
-
UUUMに所属している方はどのよ...
-
芸能事務所に所属するというこ...
-
ジャニーズ事務所は、やはりブ...
-
質問です。私は芸能事務所に所...
-
芸能事務所にお電話でお話を聞...
-
access2003のコンボボックスよ...
-
目が離せない注目の新人声優さ...
-
芸能事務所のパパドゥについて...
-
Novaの解約
-
松本ハウスへ連絡 加賀谷さん自...
-
スタディプラスのプロフィール...
-
ハロープロジェクトは事務所名...
-
五合・・・・ごんごう?
おすすめ情報