[Access 2010]
I'm not sure if the subject will ultimately describe my issue, but it was the best I could come up with based on the info I've got.
I'm working on a database that I inherited from a previous employee and it's very basic, at least in terms of objects...there's only tables and queries, no code. However, the queries depend on other queries in order to perform their functions, i.e. a Make Table query creates a table that is used in the definition of a second query.
Due to the large number of queries the dependency, I wanted to automate the entire process. Because I'm working with Make Table queries, one of the steps I have to complete is to delete the table that the Make Table query produces since the Make Table query may be used multiple times in a loop (changing the table used in the definition of the query each iteration).
So, I'm attempting to loop through the TableDefs collection looking for the table names that the Make Table query is supposed to create each iteration. The problem that I'm running into though, is that my loop through TableDefs doesn't always find a particular table...almost as if it's hidden. I can unhide the hidden tables and the table is there, but the table properties don't show the table to be hidden. I've stepped through the code to see each of the table names that are available in the TableDefs loop, but for some reason the table isn't found.
This leads me to another problem that I alluded to, which is that I can't use the Make Table query if the table created by the query already exists (it produces error 3010).
I'm stumped as to why the table isn't showing up in the TableDefs collection. Can anyone tell me why this is occurring?
Here's my code...I'll break it up into snippets and provide some info on what I'm trying to do at each step:
Declare variable, assign Table/QueryDefs to variables, create an array of table names that will be used in the query definition (changing at the For..Loop iteration) for the "Add TPI" query.
Expand|Select|Wrap|Line Numbers
- Dim db As DAO.Database
- Dim td As DAO.TableDefs
- Dim t As Object
- Dim qdfBigCountP1 As DAO.QueryDef
- Dim qdfBigCountP2 As DAO.QueryDef
- Dim qdfBigCountP3 As DAO.QueryDef
- Dim qdfBigCountP4 As DAO.QueryDef
- Dim qdfEligibilityCheck As DAO.QueryDef
- Dim strBigCountP1SQL As String
- Dim strBigCountP3SQL As String
- Dim strBigCountP4SQL As String
- Dim strEligibilityCheckSQL As String
- Dim arrTables(1) As String
- Dim countTable As Integer
- Dim strTable As String
- Dim strWrap As String
- Dim strNoWrap As String
- Dim blnTablesFound As Boolean
- Set db = CurrentDb()
- Set td = db.TableDefs
- Set qdfBigCountP1 = db.QueryDefs("Big Count P1")
- Set qdfBigCountP2 = db.QueryDefs("Big Count P2")
- Set qdfBigCountP3 = db.QueryDefs("Big Count P3")
- Set qdfBigCountP4 = db.QueryDefs("Big Count P4")
- Set qdfEligibilityCheck = db.QueryDefs("Eligibility Check")
- arrTables(0) = "Title V Selected Providers (Jan 15th)"
- arrTables(1) = "Title XX Selected Providers (Jan 15th)"
Expand|Select|Wrap|Line Numbers
- For countTable = 0 To UBound(arrTables)
- strTable = arrTables(countTable)
- Select Case countTable
- Case 0
- strWrap = "Undup Title V Wrap (Jan 15th)"
- strNoWrap = "Undup Title V No Wrap (Jan 15th)"
- Case 1
- strWrap = "Undup Title XX Wrap (Jan 15th)"
- strNoWrap = "Undup Title XX No Wrap (Jan 15th)"
- Case Else
- Debug.Print "An error occurred in the Select..Case Statement"
- End Select
- td.Refresh
- strBigCountP1SQL = "SELECT [" & strTable & "].Provider, [" & strTable & "].PCN, [" & strTable & "].FDOS, [" & strTable & "].[Claim Type], [" & strTable & "].SSN, " & _
- "[" & strTable & "].[Procedure Code], [" & strTable & "].[Current Claim Status], [" & strTable & "].Sex, FiscalYearAge([" & strTable & "].DOB) " & _
- "AS Age, [" & strTable & "].[Allowed Quantity], [" & strTable & "].[Billed Quantity], [" & strTable & "].[Modifier 1], [" & strTable & "].Paid, " & _
- "[" & strTable & "].[DHS County Code], [" & strTable & "].TPI INTO [Core Count P1] FROM [" & strTable & "] WHERE (((" & _
- "[" & strTable & "].[Current Claim Status])<>'D'));"
- qdfBigCountP1.SQL = strBigCountP1SQL
- qdfBigCountP1.Close
- strEligibilityCheckSQL = "SELECT [" & strTable & "].* FROM [" & strTable & "] INNER JOIN [WHP SSN Undup] ON [" & strTable & "].SSN=[WHP SSN Undup].SSN " & _
- "WHERE ((([" & strTable & "].FDOS) Between [Beginning Eligibility] And [Ending Eligibility]) AND ((" & _
- "[" & strTable & "].[Current Claim Status])<>'D'));"
- qdfEligibilityCheck.SQL = strEligibilityCheckSQL
- qdfEligibilityCheck.Close
- strBigCountP3SQL = "SELECT [Core Count P1].Provider, [Core Count P1].PCN, [Core Count P1].[Current Claim Status], [Core Count P1].[Procedure Code], " & _
- "[Core Count P1].SSN, Sum([Core Count P1].[Billed Quantity]) AS [Billed Quantity], Sum([Core Count P1].[Allowed Quantity]) AS [Allowed Quantity], " & _
- "First([Core Count P1].[Claim Type]) AS [Claim Type], Sum([Core Count P1].Paid) AS Paid, First([Core Count P1].Sex) AS Sex, " & _
- "First([Core Count P1].Age) AS Age, First([Core Count P1].[Modifier 1]) AS [Modifer 1] INTO [" & strNoWrap & "] FROM [Core Count P1] GROUP BY " & _
- "[Core Count P1].Provider, [Core Count P1].PCN, [Core Count P1].[Current Claim Status], [Core Count P1].[Procedure Code], [Core Count P1].SSN;"
- qdfBigCountP3.SQL = strBigCountP3SQL
- qdfBigCountP3.Close
- strBigCountP4SQL = "SELECT [Eligibility Check].Provider, [Eligibility Check].PCN, [Eligibility Check].FDOS, [Eligibility Check].[Procedure Code], " & _
- "[Eligibility Check].[Current Claim Status], [Eligibility Check].SSN, First([Eligibility Check].[Claim Type]) AS [Claim Type], " & _
- "Sum([Eligibility Check].Paid) AS Paid, Sum([Eligibility Check].[Allowed Quantity]) AS [Allowed Quantity], " & _
- "Sum([Eligibility Check].[Billed Quantity]) AS [Billed Quantity], [Eligibility Check].[Modifier 1] AS [Modifer 1], " & _
- "First([Eligibility Check].Sex) AS Sex, First(FiscalYearAge([Eligibility Check].DOB)) AS Age, [Eligibility Check].[DHS County Code], " & _
- "[Eligibility Check].TPI INTO [" & strWrap & "] FROM [Eligibility Check] GROUP BY [Eligibility Check].Provider, [Eligibility Check].PCN, " & _
- "[Eligibility Check].FDOS, [Eligibility Check].[Procedure Code], [Eligibility Check].[Current Claim Status], [Eligibility Check].SSN, " & _
- "[Eligibility Check].[Modifier 1], [Eligibility Check].[DHS County Code], [Eligibility Check].TPI;"
- qdfBigCountP4.SQL = strBigCountP4SQL
- qdfBigCountP4.Close
- td.Refresh
Expand|Select|Wrap|Line Numbers
- For Each t In td
- If t.Name = "Core Count P1" Then
- td.Delete "Core Count P1"
- Debug.Print "The Core Count P1 table was found and deleted."
- Exit For
- End If
- Next t
- td.Refresh
- blnTablesFound = False
- For Each t In CurrentDb.TableDefs
- Debug.Print t.Name
- If t.Name = strWrap Then
- td.Delete strWrap
- Debug.Print "The " & strWrap & " table was found and deleted."
- Debug.Print blnTablesFound
- If blnTablesFound = True Then
- Exit For
- Else
- blnTablesFound = True
- End If
- ElseIf t.Name = strNoWrap Then
- td.Delete strNoWrap
- Debug.Print "The " & strNoWrap & " table was found and deleted."
- Debug.Print blnTablesFound
- If blnTablesFound = True Then
- Exit For
- Else
- blnTablesFound = True
- End If
- End If
- Next t
- qdfBigCountP1.Execute dbFailOnError
- qdfBigCountP2.Execute dbFailOnError
- qdfBigCountP3.Execute dbFailOnError
- qdfBigCountP4.Execute dbFailOnError
- Next countTable
- Set qdfEligibilityCheck = Nothing
- Set qdfBigCountP4 = Nothing
- Set qdfBigCountP3 = Nothing
- Set qdfBigCountP2 = Nothing
- Set qdfBigCountP1 = Nothing
- Set qdfBigCountP1 = Nothing
- Set td = Nothing
- Set db = Nothing
- End Sub
Thanks,
beacon