1

これは基本的な質問かもしれませんが、Googleでどのように表現するかわかりません。

基本的に、この形式( "02" 000)で構造化された主キーを持つAccessデータベースがあります。

番号を貼り付けようとすると、「02」は無視され、直接000になります。

たとえば、ここにコードがあります。

PeriodRoomID.Name = ("R" & ds.Tables("sqlSpecRoomRequest").Rows(i).Item(1))

PeriodRoomID.NameはR02001である必要があります。R1と同じようにPeriodRoomID.Nameが表示されます。

「02」を無視し、0を無視します。これは数学的には理にかなっていますが、私が望んでいることではありません。簡略化されたバージョンではなく、正確な出力を取得する方法が必要です。

クエリ;

SELECT SpecialSoftware.SpecSoftID, SpecialSoftware.RoomID, SpecialSoftwareNames.Description, Rooms.Capacity
FROM SpecialSoftware, SpecialSoftwareNames, Rooms
4

3 に答える 3

1

アプリ内で数値をフォーマットすることができます:

Dim roomID As String = ds.Tables("sqlSpecRoomRequest").Rows(i).Item(1)
PeriodRoomID.Name = "R02" & roomID.PadLeft(3, "0"c)
于 2012-02-06T14:44:02.483 に答える
1

「02」000 に設定されたフォーマットのオートナンバー型フィールドを用意することをお勧めします。フォーマットが行うことは、データをそのフォーマットで Access ユーザーに表示することだけです。フィールドには 02001 が含まれておらず、1 が含まれています。フォーマットを再作成する場合は、アプリケーションで再作成する必要があります。自動番号をnに更新すると、ADO と ODBC ではnとして表示されますが、Access ではさまざまな場所で 0200n として表示されます。形式は Access のクエリには関係ありません。テーブルの形式が良い考えだとは思いません。

于 2012-02-06T14:35:07.513 に答える
0

「02」のみアクセスできますか?クエリは「02」を無視するように記述したため、この情報に対して単一のクエリが必要であるように見えます。
私はvbやアクセスの専門家ではありませんが、簡単な「n」ダーティソリューションを使用できるようです。あなたが書いたように、キーの形式は「02」000です。最大桁数がわかっているので、各数値を単独で取り出し、桁数を確認して文字列に変換し、欠落しているすべての先行ゼロを埋めます。

全体的なコメントが示す内容を参照する:動的に先行ゼロを埋め、名前でテーブルを参照して、部屋IDがR01またはR02で始まるかどうかをif句で決定します。

于 2012-02-06T08:24:09.380 に答える