を挿入するために、VBAを使用したときに値の入力を求める続けます。 AllCandidates(ID、姓、姓)とCandicateSteps(ID、ステップ、DateReceived、結果) 私のスクリプトは、姓、姓のペアのために、Excelファイルから読み込むことです:私は2つのテーブルを持っています。存在しない場合は、LastName、FirstNameを最初のテーブルに挿入し、Step、DateReceived、Resultを2番目のテーブルに挿入します。 実行時、Accessはすべてのフィールド値を入力するように要求し続け、その値を使用して、Excelから渡された値の代わりにテーブルに格納します。誰かが私が間違っていたことに光を当ててもらえますか?どうもありがとう。アクセス2016は、私はAccessで初心者です、レコード
Public Sub LoadExcelToAccess(xlPath As String)
Dim xlApp As Object
Dim xlWrk As Object
Dim xlSheet As Object
Dim i As Long
Dim sql, sql2 As String
Set xlApp = VBA.CreateObject("Excel.Application")
Set xlWrk = xlApp.Workbooks.Open(xlPath)
Set xlSheet = xlWrk.Sheets("Sheet1")
For i = 2 To 4
Dim rID
'check if the person is already in the DB
Set rID = CurrentDb.OpenRecordset("Select ID from AllCandidates where LastName='" & xlSheet.cells(i, 1) & "' and FirstName = '" & xlSheet.cells(i, 2) & "'")
If rID.EOF Then
'person is not in DB, insert it into the AllCandidates db
MsgBox "ID Not found"
sql = "Insert Into [AllCandidates] (LastName, FirstName) VALUES (" & xlSheet.cells(i, 1).Value & "," & xlSheet.cells(i, 2).Value & ")"
DoCmd.RunSQL sql
End If
rID.Close
'now that the person is surely there, insert the steps status into the CandiateSteps table
Set rID = CurrentDb.OpenRecordset("Select ID from AllCandidates where LastName='" & xlSheet.cells(i, 1) & "' and FirstName = '" & xlSheet.cells(i, 2) & "'")
'get the last ID that were inserted in the AllCandidates table
Dim fld As Field
Set fld = rID.Fields(0)
MsgBox "item in row ID = " & fld
sql2 = "Insert into [CandidateSteps] (ID, Step, DateReceived, Result) VALUES (" & fld & ", " & xlSheet.cells(i, 3).Value & ", " & xlSheet.cells(i, 4).Value & ", " & xlSheet.cells(i, 5).Value & ")"
DoCmd.RunSQL sql2
rID.Close
Next i
'make sure to dispose of objects
xlWrk.Close
xlApp.Quit
Set rID = Nothing
Set fld = Nothing
Set xlSheet = Nothing
Set xlWrk = Nothing
Set xlApp = Nothing
End Sub
引用符なしでテキスト値を挿入しようとしています –
ありがとうございますTim !!!!それはそれを修正しました!愚かな私! – Christine