私は関連するスレッドを少し読んだが、まだこの質問で私を残した。 Accessデータベースアプリケーションに関数を書き込んで、最初の2行の前に開始するExcelデータをプログラムでインポートする必要があります。これはヘッダーと単位区切り文字です。ExcelデータをプログラムでAccessテーブルにインポートするにはどうすればよいですか?
私は、次のことを達成するために探しています:
- を動的に私はおそらくダイアログボックスと、おそらくファイルブラウザウィンドウを使用して、インポートするために探していますExcelファイルを選択することができます。
- レコーダーのアセット番号やレコーダーの指定された場所など、インポート時に各行に「共通」データを挿入します。
- 行番号#1ではなく行番号3でインポートを開始します。デバイスはレコードのヘッダと測定単位情報を自動的に入力します。
- ワークシート内の他の列はすべて無視します。データは常に列AからGに存在し、データは常に行#3から開始されます。
これは、Excelのデータは、一般的にフォーマットされている方法です(ダッシュは、データを表す):私は、組み込みのアクセス「外部データの取り込み」機能を試してみたが、それは勝った
Date Time Temp Dew Point Wet Bulb GPP RH Cº Cº Cº g/Kg % ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
」 2行目を越えてスキップし、Excelファイル内の余分なデータが読み込み中にエラーをスローし、トラック内のプロセスを停止します。
私は外部ファイルを使用する前にAccessのインポート機能を書こうとしたことは一度もありませんでした。それで初心者です。人々が私に示すことができるどんな助けも常に高く評価され、必要に応じて試行されたコードでこれを更新することができます。皆さんのお手伝いをさせていただき、ありがとうございます!
- 編集2011年1月3日は10:41 @ -
Remouによって提案されたExcelデータスレッドへのADO接続を読んだ後は、ここで私はかもしれないが仕事をすると思いますが、いくつかのコードがあります私はわかりません。
Dim rs2 As New ADODB.Recordset
Dim cnn2 As New ADODB.Connection
Dim cmd2 As New ADODB.Command
Dim intField As Integer
Dim strFile As String
strFile = fncOpenFile
If strFile = "" Then Exit Sub
With cnn2
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source='" & strFile & "'; " & "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
.Open
End With
Set cmd2.ActiveConnection = cnn2
cmd2.CommandType = adCmdText
cmd2.CommandText = "SELECT * FROM [Data$] WHERE G1 IS NOT NULL"
rs2.CursorLocation = adUseClient
rs2.CursorType = adOpenDynamic
rs2.LockType = adLockOptimistic
rs2.Open cmd2
上記の解決策の問題点は、データの範囲を事前に知る必要があり、データロギングの任務中にこのデバイスがどれくらい引き込むかによって大きく変わるということです。私は明日オフィスに戻ってきて、もっと情報を提供できるかどうかを見ていきます。 –
オートメーションで接続して範囲を取得することは常に可能ですが、少し遅くなります。 – Fionnuala
私は上記のテスト・ステートメントを投稿し、以前の投稿に修正しました。これはあなたが念頭に置いていたものでしたか? –