0

という名前のリスト コントロールを持つフォームがありますlstCustomerrowsource以下に示すように、メソッドに文字列を渡しています

me.lstCustomer.RowSource = lstSQL

lstSQL は、rowSource メソッドに割り当てる前に指定されています。

lstSQL = "SELECT FullName, City & " - " & Region AS Location FROM tblContact ORDER BY FullName;"

これはエラーを生成していますType Mismatch

連結列を使用していない場合、このエラーは発生しません。以下のコードを試しました(これはエラーを生成しません)

lstSQL = "SELECT FullName, City, Region FROM tblContact ORDER BY FullName;"

都市と地域を 1 つの列に表示したい。私の間違いを指摘してください。前もって感謝します。

4

2 に答える 2

2

クエリの'代わりに一重引用符を使用してください。"

SELECT FullName, City & ' - ' & Region AS Location 
FROM tblContact ORDER BY FullName;
于 2016-06-17T12:40:43.093 に答える
1
lstSQL = "SELECT FullName, City & ' - ' & Region AS Location FROM tblContact ORDER BY FullName;"

2 つのこと: 引用符内では、一重引用符またはエスケープ文字を使用する必要があります。そうしないと、VBA がリテラル文字列の開始位置と停止位置を混乱させます。二重引用符は、途中のすべてをリテラルとして取得することを意味します。二重引用符内の単一引用符は、SELECT ステートメントが実際に実行されるときのリテラルです。

type mismatchここで 2 つの文字列を効果的に減算しようとしているためにエラーが発生していますが、文字列を実際に加算または減算することはできません。

また、計算フィールドのエイリアスが必要です。それがAS、上記の回答で演算子が登場する場所です。

于 2016-06-17T15:32:42.183 に答える