1

Accessデータベースにインポートする必要のあるExcelシートがあります。シートは次のようになります。

日付レセプションの名称項目番号QUANTITERECUE
2010年6月1日DVD-Sex&the City PCR-PA21550167 5
2010年6月1日DVD-アバターNatie2PCR-PA21550209 10

次に、adodbを使用してこのファイルをデータベースに転送します。


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"
    .Open
End With

Set cmd2.ActiveConnection = cnn2
cmd2.CommandType = adCmdText
cmd2.CommandText = "SELECT * FROM [PCR$]"
rs2.CursorLocation = adUseClient
rs2.CursorType = adOpenDynamic
rs2.LockType = adLockOptimistic

rs2.Open cmd2

While Not rs2.EOF
        strNaam = rs2.Fields(3).Value
Loop

今私の問題:特定のフィールドにはテキストが含まれています。その場合、フィールド値はになりますがitem0001、報告によればNULLです。

フィールドに通常の番号がある場合は、正常に機能します。

奇妙なことに、シートには他のテキストフィールドがあり、それらはFINEで機能します。

4

1 に答える 1

4

拡張プロパティの部分をより具体的にします(内部引用符を省略しないでください)。

特に、Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"数字とテキストの混合データを許可するようにしてください。

詳細については、http://connectionstrings.com/をご覧ください。

于 2010-01-14T16:51:21.457 に答える