0

さて、Access データベースには 200 近くのテーブルがあります。テーブルは植物種の存在量データであり、それらをマスター データ ファイルに結合したいと考えています。各テーブルには、基本的に同じ種の列が含まれています。ただし、多くのスペルはわずかに異なります。

MS Access で SQL クエリを実行すると、フィールド名のスペルが少し異なるため、テーブルを相互に追加できません。

役立つ考えはありますか?

私が実行しているクエリは追加クエリです。

INSERT INTO masterTable SELECT * FROM siteTable

例として、フィールド名の違いはごくわずか
です (例: "Spp.A" と "SppA" または "SpeciesOne" と "Species1")。

助けてくれてありがとう、
ポール

4

1 に答える 1

0

これには vba を使用する必要があります。また、masterTable で使用している列名を変更する必要があります。この例では、column1、column2、および column3 のみであり、2 つの最大列インデックスを設定する必要があります。の場所 (コメントをいくつか貼り付けたので、何を変更する必要があるかがわかります)。

通常vbaを使用しない場合は、ボタン付きのフォームを作成し、ボタンのクリックイベントを作成してこのコードを挿入し、フォームを開いてボタンをクリックします。

Dim db As Database
Dim tdf As TableDef
Dim ii As Long
dim sql as String

Set db = CurrentDb()
docmd.setwarnings false

For Each tdf In db.TableDefs
    'change column list as required:
    sql = "INSERT INTO masterTable (Column1, Column2, Column3) SELECT "
    'change 2 to maximum column number - 1:
    for ii = 0 to 2
        sql = sql & tdf.Fields(ii).Name
        'change 2 to maximum column number - 1 again:
        if ii < 2 then
            sql = sql & ","
        end if
    next
    sql = sql & ")"

    docmd.runsql sql
Next
docmd.setwarnings true

これはうまくいくはずです。(私はそれをテストしていないので、構文エラーがないことを願っていますが、ロジックは正確にはロケット科学ではありません)

お役に立てれば

于 2013-11-06T02:20:16.807 に答える