0

MS Access 2016 データベースへの OBDC リンクを作成した csv ファイル (週に 3 回更新されます。その形式を制御できないため、正規化できません) があります (スキルを更新するために MS Access を選択しました)。それ以外の場合は SQL で完了します)。リンクされたテーブルの OBDC リンクを設定する際にさまざまな順列を試しましたが、他のフィールドに最適な構造を提供するものはありません。

CSV ファイルは次のようになります。

Fecha de Sorteo,Numero de sorteo,Numero de Juego,Nombre,Valores Principales,Comodines,DRAWNAME,Ganadores de Premio Mayor,Premio Mayor Garantizado
"8/25/2002 12:00:00 AM","1714","1","main","31,34,26,1,2,28","16","Loto","0",

フィールド 3 を 6 つのコンポーネント パーツにコンマで区切るクエリを作成しようとしています。ここで見られるように、InStr と Mid 関数を使用して 2 つまたは 3 つのコンポーネント (ただし、それ以上になることはありません) を分離する多くの例を見てきました。

このフィールドをコンポーネントに分離するために複数の式を作成する必要がありますか?それとも代替ソリューションですか?

4

2 に答える 2

0

Split 関数を使用してローカル テーブルにデータを書き込むことをお勧めします。そのフィールドを配列に分割できます。次に、VBA を使用してレコード全体を Access に書き込みます。

したがって、次のようなものです:

Dim db as Database
Dim rec as Recordset
Dim rec2 as Recordset

Set db = CurrentDB
Set rec = db.OpenRecordset("SELECT * FROM MyLinkedTable")
Set rec2 = db.OpenRecordset("SELECT * FROM MyLocalTable")

Do while rec.EOF = False
  rec2.AddNew
  rec2("Field1") = rec("Field1")
  rec2("Field2" = rec("Field2")
  strArray = Split(rec("Field3"), ",")
  rec2("Part1") = strArray(0)
  rec2("Part2") = strArray(1)
  etc...
  rec2.Update
rec.MoveNext

上記は「aircode」であり、完全にテストされていませんが、おそらくかなり正確であり、開始する必要があります.

于 2015-11-24T16:29:43.150 に答える