2

Access 2010 フロントエンドを持つ SQL データベースを構築しています。

一部のフィールドを Access でルックアップしたいと考えています (つまり、ユーザーが Access でフィールドをクリックすると、ドロップダウンが表示されます)。Access でフィールドを別のテーブルのルックアップにするのはかなり簡単ですが、SQL でそれを実行して変更を反映する方法がわかりません。

私の SQL の知識は非常に基本的なものです。SQL テーブルの作成方法の例を次に示します。

CREATE TABLE RequestTypes (
    RequestType varchar(50) PRIMARY KEY
);
INSERT INTO RequestTypes (RequestType) VALUES ('Val 1');
INSERT INTO RequestTypes (RequestType) VALUES ('Val 2');
INSERT INTO RequestTypes (RequestType) VALUES ('Val 3');

CREATE TABLE Projects (
    ID int IDENTITY(1,1) PRIMARY KEY,
    RequestStatus varchar(50) FOREIGN KEY REFERENCES RequestStatus(RequestStatus),
    Quantity varchar(50)
);

次に、Access の ODBC 接続を介してデータベースに接続します。

RequestStatusProjects テーブルのフィールドがルックアップ テーブルと同じ機能を持つように、SQL でテーブルを作成するにはどうすればよいですか? たとえば、プロジェクトの RequestStatus 属性をクリックして、リストから「Val 1」または「Val 2」または「Val 3」を選択できます。上記では、テーブルが一致する必要がありますが、「ドロップダウン」ルックアップ機能は提供されていません。

4

3 に答える 3

3

SQL Server でテーブルを作成してリンクし、そのテーブルを目的のコンボ ボックス/ドロップダウンの行ソース プロパティとして使用します。

これは、SQL Server でテーブルを作成するための非常に基本的な構文です。

CREATE TABLE LookupTest 
(
    ID INT NOT NULL,
    LookupValue varchar(255)
);
于 2013-10-02T23:24:49.487 に答える
3

SQL サーバーに対してデータシート ビューを使用する場合、ルックアップは使用できません。

ただし、継続フォームを作成し、コンボ ボックスにドロップして、ウィザードを使用して (または手動で)、必要なドロップダウンとルックアップを作成することができます。ユーザーの観点からは、継続形式と継続形式でデータを編集することの違いを実際に識別することはできません。

したがって、継続フォームは ONE テーブルに基づいています。コンボ ボックスの列は長い数値になり、コンボ ボックスには選択肢 (参照値) のリストを提供するテーブルの行ソースが含まれます。

したがって、次のような画面を作成できます。

ここに画像の説明を入力

上記では、継続フォームだけでなく、いくつかのボタンなどがあることに注意してください。したがって、継続フォームはデータシートよりも柔軟性がありますが、この「複数の項目」フォームは、ほとんど同じユーザー インターフェイスになります。

最初の列がコンボ ボックスであることに注意してください。実際、上に示したように、ほぼすべての種類のコントロールをこれらの継続フォームに入れることができます。コンボ ボックスは、選択したテキスト列を表示できます/表示しますが、コンボ ボックスは、コンボ ボックスから選択した値の PK ID をフォーム テーブルの 1 つの列に格納します。

結果とルック アンド フィールは、Access データシートのルックアップ列と同じです。

于 2014-11-13T06:07:55.663 に答える
1

オプション1:

アクセスするテーブルをリンクしている場合は、リンクされたテーブルにルックアップを設定できます。これを行うには、テーブルのデザイン ビューに移動します。ルックアップ対象のフィールドを選択します。[ルックアップ] タブをクリックします。表示コントロールのコンボ ボックスを選択します。行ソースで SQL を指定します。例えば:

CustomerName フィールドを使用している場合、次の SQL が必要になる場合があります。

SELECT DISTINCT Customer.CustomerName FROM Customer

オプション 2:

ただし、この方法で処理することはお勧めしません。フォームにコンボ ボックスを追加し、Row Source Type を "Table/Query" に設定し、Row Source を上記のクエリに設定することをお勧めします。Access ではルックアップ フィールドを使用しないでください。

于 2013-10-03T13:49:28.950 に答える