1

私はアクセスに取り組んでおり、変数名を持つクエリを作成するために VBA を利用しているため、アクセスでクエリ ウィザードを使用できません。

次の2つのテーブルがあります。

tblKabelInfo

そして、私のプログラムの他の何かに応じて異なる名前のテーブル

tblName1 as String

テーブルは次のようになります。

tblKabelInfo:

+--------------+----------+----------+----------+
| Kabelnummer  |   data   |more data |even more |           
+--------------+----------+----------+----------+
| 1            |    x     |    x     |    x     |
+--------------+----------+----------+----------+
| 2            |    x     |    x     |    x     |
+--------------+----------+----------+----------+
| 3            |    x     |    x     |    x     |
+--------------+----------+----------+----------+
| 4            |    x     |    x     |    x     |
+--------------+----------+----------+----------+

tblName1:

+--------------------------------+----------+----------+
| Filename                       |   bla    | databla  |
+--------------------------------+---------------------+
|\850\850nm_Lessenaar 1_0001.SOR |    x     |    x     |
+--------------------------------+----------+----------+
|\850\850nm_Lessenaar 1_0002.SOR |    x     |    x     |
+--------------------------------+----------+----------+
|\850\850nm_Lessenaar 1_0003.SOR |    x     |    x     |
+--------------------------------+----------+----------+
|\850\850nm_Lessenaar 1_0004.SOR |    x     |    x     |
+--------------------------------+----------+----------+

両方のテーブルが同じサイズであることはわかっています (したがって、テーブル "tblName1" が 0234.SOR になると、"tblKabelInfo" の Kabelnummer も 234 になることがわかります)

次のような新しいテーブルを作成するクエリを作成したいと思います。

NewTable:

+--------------------------------+--------------+-----+--------+-----------+---------+
| Filename                       |KabelNummer   | bla |databla | More Data |Even more|
+--------------------------------+--------------+--------------+-----------+---------+
|\850\850nm_Lessenaar 1_0001.SOR | 1            |  x  |   x    |     x     |    x    |
+--------------------------------+--------------+-----+--------+-----------+---------+
|\850\850nm_Lessenaar 1_0002.SOR | 2            |  x  |   x    |     x     |    x    |
+--------------------------------+--------------+-----+--------+-----------+---------+
|\850\850nm_Lessenaar 1_0003.SOR | 3            |  x  |   x    |     x     |    x    |
+--------------------------------+--------------+-----+--------+-----------+---------+
|\850\850nm_Lessenaar 1_0004.SOR | 4            |  x  |   x    |     x     |    x    |
+--------------------------------+--------------+-----+--------+-----------+---------+

2 つのテーブルを 1 つのテーブルにまとめたいのですが、共通点は、"Filename" の末尾が "KabelNummer" と同じであることです。

4

3 に答える 3

1
SELECT t.Filename,T.bla,T.databla,K.MoreData,K.EvenMore
INTO 
[New Table Name]
FROM tblName1 as T
inner join tblKabelInfo as K
ON CAST(SUBSTRING(T.Filename,[length of filename upto number],1)AS INT)= K.KabelNummer;

まだテストしていませんが、これらの線に沿ったものになるでしょう。ここselect intoから始めることができる検索をお勧めします。

于 2013-07-24T09:19:18.013 に答える
1

これで試してみてください

INSERT INTO tableNew
SELECT B.Filename,
       A.Kabelnummer,
       B.bla,
       B.databla,
       A.data,
       A.[more data],
       A.[even more]
FROM tblKabelInfo A INNER JOIN tblName1  B
ON A.Kabelnummer=CAST(RIGHT(SUBSTRING( B.Filename,1,LEN(SUBSTRING( B.Filename, 0, PATINDEX('%.%', B.Filename)) + '.') - 1),4)

ファイル名の 4 桁までを処理するように更新されました。00019999

お問い合わせ (編集)

INSERT INTO tableNew
SELECT B.[Filename],
   A.[Vezelnummer],
   B.[tblVerlies1_Verlies],
   B.[tblVerlies2_Verlies],
   A.[KabelNaam],
   A.[Van],
   A.[Naar],
   A.[VezelLengte],
   A.[TypeKabel],
   A.[TypeConnector],
   A.[AantalConnectoren],
   A.[AantalLassen]
 FROM tblKabelInfo A INNER JOIN tbl_GL_850  B
ON A.Vezelnummer=CAST(RIGHT(SUBSTRING(B.[Filename],1,LEN(SUBSTRING(B.[Filename], 0, PATINDEX('%.%',B.[Filename])) + '.') - 1),4) AS INT)
于 2013-07-24T09:19:08.210 に答える