Sorteerfunctie op alle tabellen in database

Status
Niet open voor verdere reacties.

SRADA

Nieuwe gebruiker
Lid geworden
13 apr 2007
Berichten
1
Hallo allemaal,

Ik heb een vraagje.
Ik heb een database gemaakt in Acces. Deze database is inmiddels erg uitgebreid geworden. Het komt vaak voor dat ik specifieke data wil opzoeken. Dit wil ik op een snelle manier kunnen doen. Ik wil dan niet moeten nadenken in welke tabel het staat. Ik wil graag een trefwoord ingeven, dan moeten alle tabellen doorzocht worden op dit trefwoord en daarna wil ik een overzicht van alle records waarin dit trefwoord voorkomt.
Ik ben bekend met het maken van Queries en macro's echter niet met stored procedures.

wie kan mij hier mee verder helpen ?
 
Voor stored procedures moet je ergens anders zijn. Afdeling SQL etc. Voor een stored procedure die dit probleem tackelt moet je even zoeken op Internet. Ik ben hem wel eens tegengekomen.

Voor een oplossing in VBA code in Access moet je iets meer werk doen. Je komt een heel end als je ADOX gebruikt...

Succes
 
Hoi,

Misschien kun je hier iets me:

Code:
Function SaveFindStringInMDB()

Dim dbs As DAO.Database
Dim rstR As DAO.Recordset
Dim rstT As DAO.Recordset
Dim tdf As DAO.TableDef
Dim intF As Integer
Dim strF As String


strF = Forms("searchKey").Controls("keyOne").Value

Set dbs = CurrentDb()
Set rstR = dbs.OpenRecordset("tblResult")
For Each tdf In DBEngine(0)(0).TableDefs
    'skip system tables and utility tables
    If Left$(tdf.name, 4) <> "MSys" _
        Or Left$(tdf.name, 4) <> "tbl" _
        Or Left$(tdf.name, 4) <> "list" Then
        Set rstT = dbs.OpenRecordset(tdf.name, dbOpenSnapshot)
        Do While Not rstT.BOF And Not rstT.EOF
            For intF = 0 To rstT.Fields.Count - 1
                If rstT.Fields(intF).Type = dbText Then
                    If InStr(rstT.Fields(intF).Value, strF) > 0 Then
                        rstR.AddNew
                        rstR.Fields("TableName").Value = tdf.name
                        rstR.Fields("FieldName").Value = rstT.Fields(intF).name
                        rstR.Fields("SearchFind").Value = rstT.Fields(intF).Value
                        rstR.Fields("ContractID").Value = rstT.Fields("cont_no").Value
                        rstR.Update
                    End If
                End If
            Next
            rstT.MoveNext
        Loop
        rstT.Close
        Set rstT = Nothing
    End If
Next
    
'final cleanup
rstR.Close
Set rstR = Nothing
Set tdf = Nothing
Set dbs = Nothing
    
End Function

Succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan