まず、時間と手助けをお寄せいただきありがとうございます。ここに私の状況です。アクセステーブルの条件でアクセスするためにExcelから値をインポートする
既存のExcelワークブックの値をアクセスデータベースの既存のテーブルに追加しようとしています。ここでは、私が見つけたコードを私のニーズに応じて少し演奏しましたが、私がボタンをクリックすると、何もしません。エラーメッセージもインポートされた値もなく、何もしません。
Private Sub Command39_Click()
On Error GoTo Err_Handler
Dim wbFDU As Workbook
Dim objExcelApp As Excel.Application
Dim db As Database
Dim rstWL As Recordset
Dim columnI As String
Dim columnS As String
Dim searchInC As String
Dim C As String
Dim I As String
Dim M As String
Dim S As String
Dim W As String
Dim iCounter As Integer
Set db = CurrentDb
Set rstWL = db.OpenRecordset("Select * FROM WL WHERE WLDate = Date()-1")
Set objExcelApp = New Excel.Application
objExcelApp.Workbooks.Open ("\\CDB\Shared\MNG\CIO Mng.xlsm")
Set wbFDU = objExcelApp.Workbooks(1)
If rstWL.EOF = False Then
rstWL.MoveFirst
Do While rstWL.EOF = False
iCounter = 1
C = "C" & iCounter
I = "I" & iCounter
M = "M" & iCounter
S = "S" & iCounter
W = "W" & iCounter
Do Until wbFDU.Worksheets("Rep").Range(C).Value = ""
searchInC = wbFDU.Worksheets("Rep").Range(C).Value
If rstWL!CustName = searchInC Then
columnI = wbFDU.Worksheets("Rep").Range(I).Value + wbFDU.Worksheets("Rep").Range(M).Value
columnS = wbFDU.Worksheets("Rep").Range(S).Value + wbFDU.Worksheets("Rep").Range(W).Value
rstWL.Edit
rstWL.Fields("LCDCO") = columnI
rstWL.Update
rstWL.Fields("ECDCO") = columnS
rstWL.Update
End If
iCounter = iCounter + 1
C = "C" & iCounter
I = "I" & iCounter
M = "M" & iCounter
S = "S" & iCounter
W = "W" & iCounter
Loop
rstWL.MoveNext
Loop
End If
wbFDU.Close False
Set wbFDU = Nothing
rstWL.Close
Set rstWL = Nothing
db.Close
Set db = Nothing
Exit Sub
Err_Handler:
MsgBox "The following error has occured." & vbCrLf & vbCrLf & _
"Error Number " & Err.Number & vbCrLf & _
"Error Description" & Err.Description & vbCrLf & _
"Your application will close!", _
vbCritical, "An Error has Occured"
End Sub
私は何を間違っているのか分からないので、
インポートした値*を要求していないため、レコードを更新または追加しようとしていますか?後者が[Recordset.AddNew](https://msdn.microsoft.com/en-us/library/office/ff845624.aspx)を使用し、特定の 'SELECT'ではなくテーブル全体を呼び出す場合。また、 'If'blockを' If rstWL.RecordCount> 0'として試してください。 – Parfait
私はレコードを更新することを意図しています。アクセステーブルには他の値を持つ顧客IDがあります(同じ顧客IDが複数の異なる日付に存在する可能性があります。そのため、Date() - 1基準でレコードセットを呼び出そうとしています)影響を受ける)。 Excelシートには、異なる価値を持つ顧客がいくつかあります。その値は、アクセステーブルのフィールドに更新する必要があります。 – taccoo73
コードを一度に1行ずつ進めるには、F8キーを押してください。 Range(C).Value = "" 'と' rstWL!CustName = searchInCならば、あなたの更新プログラムが起動しないようにすることができます。 –