SQL 문에서 매개 변수의 처음 30 개 레코드를 기반으로 테이블을 업데이트하려면 추가 쿼리를 실행하려고합니다. 모든 데이터는 Access 2010 데이터베이스에 있으며 양식의 단추를 기반으로 쿼리를 실행하고 싶습니다.Access 2010 VBA 날짜를 루프로 변경하십시오.
나는 vba를 처음 사용하며 게시물을 기반으로 다음 코드를 조합합니다.
Option Compare Database
Private Sub Command3_Click()
Dim sql As String
Dim i As Integer
Dim j As Integer
Dim rst As DAO.Recordset
Dim dbs As DAO.Database
Dim strTerritory As String
Set dbs = CurrentDb
strTerritory = "Alex Hernandez"
strSQL = "INSERT INTO tblWeather30DayMovingFinal (NEW, RptdDate, [Clm Nbr], WeatherLimit) SELECT TOP 30 tblWeather30DayMoving.[NEW], tblWeather30DayMoving.[RptdDate], tblWeather30DayMoving.[Clm Nbr], 1 AS WeatherLimit FROM tblWeather30DayMoving WHERE (((tblWeather30DayMoving.NEW)= strTerritory) AND ((tblWeather30DayMoving.RptdDate) Between #" & i & "/1/" & j & "# And #" & i & "/28/" & j & "#)); "
Set rst = dbs.OpenRecordset("tblWeather30DayMoving", dbOpenTable)
With rst
For j = 2003 To 2013
For i = 1 To 12
If Not (rst.EOF And rst.BOF) Then
.MoveFirst
Do
CurrentDb.Execute strSQL
.MoveNext
Loop Until .EOF
End If
Next i
Next j
End With
Set rst = Nothing
End Sub
다음과 같은 오류 메시지가 나타납니다. SQL에서 날짜 참조를 채우기 위해 루프를 가져 오는 방법을 알아 내려고 노력 중입니다.
런타임 오류 '3075':
쿼리 식 '(((tblWeather30DayMoving.NEW)에서 날짜구문 오류 - # 0/1/0 # 사이 strTerritory) AND ((tblWeather30DayMoving.RptdDate) 그리고 # 0/28/0 #) '.
어떤 생각이 방법 대신 공의의 SQL 문 i와 j를 전달하는 당신은 루프의 외부 strSQL
문자열을 설정하는?
아직 답을 테스트 해 보셨습니까? –