2017-02-26 5 views
0

のカスタム書式でオートナンバーとVBNテキストボックスのテキストマッチング私は「受注」は、私がしようとしている列名CusIDと私のテーブルで、形式「CUS」0001アクセス

でオートナンバーに設定されたアクセスデータベースを持っていますカスタムフォーマット "CUS0001"でVBNからオートナンバーを読み込むことができますが、私はそれを読むことができません。

私はそれをすべて文字列として読み込もうとしましたが、読むことができません。

cmdCustomer.CommandText = "Select * From Orders Where CusID = " & (txtCusID.Text) & ";" 

ご協力いただければ幸いです。ありがとうございました:)

答えて

0

名前が示すように、オートナンバー型の数値は数値です。 "CUS0001"は明らかに数字ではないので、明らかにその列に格納することはできません。 Accessでフォーマットを指定すると、Accessアプリケーションがそのデータをどのように表示するかだけに関係します。データの保存方法については何も言及していません。 Accessがその列の値を「CUS0001」と表示する場合、その列には実際に番号1が含まれています。これはVBアプリケーションに表示されるすべてのものなので、照会する必要があります。また、あなたのアプリで "CUS0001"として表示される値をしたい場合、あなたはそのようにフォーマットする必要があります。

"CUS0001"を本当に検索したければ、SQLコードでその値を一重引用符で囲む必要があります。そうしないと構文エラーが発生します。つまり、SQLコードにその値を挿入するためにパラメータを使用する必要があるため、問題ではありません。

+0

たとえば、アクセスで「CUS0001」と表示されたら、「1」を入力する必要があります。しかし、もし私が "CUS0001"全体を読むことを受け入れるにはどうすればいいですか?私はそれが働くために何をしなければならないでしょうか? これは私が心に留めていることです。 "CUS0001"の最初の3文字を文字列として、次に "0001"を数字として取得し、両方を検証することができます。それは働くでしょうか? – Chun

+0

私が言ったように、列には数字が含まれているので、その列をフィルタリングする場合は番号を指定する必要があります。ユーザが "CUS"で始まる数字を含む文字列を入力した場合、プレフィックスを取り除き、残りのテキストを 'Integer'に変換する必要があります。 – jmcilhinney

+0

さて、それは私のために働いた。ありがとう! :) – Chun