dポイントプレゼントキャンペーン実施中!

お世話になっております。
テキストファイルからデータを取り込んで、テーブルにあるデータと同じデータのみを表示させるプログラムがあります。

コードが「001」のように整数の場合は問題ないのですが、「A001」のように英数のデータの場合は、このエラーが出てしまいます。

「実行時エラー13 型が一致しません。」

デバッグをクリックすると、下記の部分が黄色に反転します。

「If DFirst("コード", "テーブル", "コード = '" & avarFldData(0) & "'") Then」

テキストファイルのデータがテーブルにない場合はエラーが出ませんので、一致したデータがある場合のみエラーが出ます。

VBAはあまり詳しくありませんので、エラーが出なくなる方法を教えていただければ助かります。
よろしくお願いいたします。


Private Sub Form_Load()

Dim dbs As Database
Dim rst As Recordset
Dim strImportDir As String
Dim strFile As String
Dim lngFileNum As Long
Dim strData As String
Dim avarFldData As Variant
Dim iintLoop As Integer

DoCmd.Hourglass True
strImportDir = Application.CurrentProject.Path & "\"
strFile = strImportDir & "File.TXT"
Set dbs = CurrentDb
GoSub ReadFile
Me.Requery
DoCmd.Hourglass False
Exit Sub

ReadFile:

Set rst = dbs.OpenRecordset("履歴", dbOpenDynaset, dbAppendOnly)
lngFileNum = FreeFile()
Open strFile For Input As #lngFileNum

Do Until EOF(lngFileNum)
Line Input #lngFileNum, strData
avarFldData = Split(strData, ",", , vbTextCompare)
For iintLoop = 0 To UBound(avarFldData)
avarFldData(iintLoop) = Trim$(avarFldData(iintLoop))
Next iintLoop
If DFirst("コード", "テーブル", "コード = '" & avarFldData(0) & "'") Then
With rst
.AddNew
!コード = avarFldData(0)
.Update
End With
End If
' End If
Loop
Close #lngFileNum
rst.Close
Kill strFile
Return

End Sub

A 回答 (1件)

If DFirst(True, "テーブル", "コード = (以下略)


にしてみてはいかがでしょう。
    • good
    • 0
この回答へのお礼

おかげさまで、エラーが出なくなり、正常に表示することができました。
とても助かりました。ありがとうございました。

お礼日時:2011/05/15 16:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!