アプリ版:「スタンプのみでお礼する」機能のリリースについて

リストボックスにテーブルAのフィールド名を表示させフィールドを選択、オプショングループで演算子(=、>など)を選択、コンボボックスにそのフィールドのソースが表示されリストから値を選択し検索をかけたいと思っています。

リストボックスで数値型のフィールドを選択し、コンボボックスから値を選択するまではいいのですが、
その後リストボックスでテキスト型のフィールドに変更すると、コンボボックスにソースは表示されるのですが選択しようとすると、

このフィールドに入力した値が正しくありません。
たとえば、数値型のフィールドに文字列を入力しました。

とエラーが出てしまいます。

コンボボックスに前に選択したデータ型が残ってしまっているようなのです。
WEBでも検索し、色々試したのですがどれもうまくいきません。

これを回避する方法はないでしょうか?

---<現在のソース>----------------------------------------------------------------
リストボックス:listfield
演算子オプショングループ:opgEnzan
コンボボックス:cboJoken

Private Sub Form_Open(Cancel As Integer)
strTable = lstfield.RowSource
End Sub

Private Sub lstfield_Click()
opgEnzan = False
End Sub

Private Sub opgEnzan_Click()
cboJoken.RowSource = ""
cboJoken.RowSource = "SELECT DISTINCT " & lstfield & " FROM " & strTable & ";"
cboJoken = Null
cboJoken.ColumnWidths = "0cm"
cboJoken.ColumnWidths = "4.5cm"
cboJoken.SetFocus
SendKeys "{F4}"
End Sub

A 回答 (1件)

根本的な解決方法ではないかもしれませんが、


最初に作ったコンボボックスのカラムのデータ型に合わせるとか?
cboJoken.RowSource = "SELECT DISTINCT Cstr(" & lstfield & ") as 新 FROM " & strTable & ";"
cboJoken.RowSource = "SELECT DISTINCT Cdbl(" & lstfield & ") as 新 FROM " & strTable & ";"
のような感じで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!