Newsgroup: it.comp.appl.access
Titolo: ricercare una stringa ner recordsource di una maschera

salve
 
con una funzione mi permette di ricercare una stringa nelle query
 
come posso ricercare nelle Form -->  RecordSource una stringa?
Grazie
 
PFM
 
 
 
 
 
 
Public Function sql_QueryCercoContenuto(sContenuto As String) As String
  '
  ' ciclo sulle query vedendo il loro nome
  '
  Dim db As Database
  Dim qDef As QueryDef
 
  Dim SQL_str As String
  Set db = CurrentDb
 
  For Each qDef In db.QueryDefs
      'MsgBox "name " & qDef.Name & vbCrLf & _
      '       "SQL  " & qDef.SQL
 
      'If qDef.Name = "qProva_semplice" Then
 
     ' Debug.Print qDef.Name & " ---> " & qDef.SQL
      If InStr(qDef.SQL, sContenuto) > 0 Then
         ' trovato testo
         sql_QueryCercoContenuto = sql_QueryCercoContenuto & qDef.Name & vbCrLf
      Else
         ' non trovato
      End If
  Next
 
  If Len(Trim(sql_QueryCercoContenuto)) > 0 Then
     MsgBox "Ricercato nelle Query il testo: " & sContenuto & vbCrLf & vbCrLf & _
            sql_QueryCercoContenuto
  Else
     MsgBox "Ricercato nelle Query il testo: " & sContenuto & vbCrLf & vbCrLf & "NON TROVATO"
 
  End If
 
End Function

 PFM
 
Devi ciclare la Collection AllForms, ma devi aprire le Form, da chiuse
non si può... quindi meglio in modalità Struttura... a quel punto
leggi la proprietà RecordSource.
 
@Alex


grazie del messaggio
 
per effettuare delle modifiche a stringhe sql vorrei fare la ricerca da codice per essere sicuro che quella maschera non contenga una determinata stringa

 > leggi la proprietà RecordSource.
 
ECCO IL CICLO MA NON RIESCO A VEDERE RecordSource
 
Public Sub AllForms()
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentProject
    ' Search for open AccessObject objects in AllForms collection.
    For Each obj In dbs.AllForms
        If obj.IsLoaded = True Then
            ' Print name of obj.
            Debug.Print obj.Name  ' restituisce il nome della Form
            '
            ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            'Debug.Print obj.RecordSource ' <==========================================
            ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        End If
    Next obj
End Sub


Così:
Forms(obj.Name).RecordSource
 
Saluti
@Alex

grazie
ciclando  su allforms
 
reisco ad aprire le form chiuse
            DoCmd.OpenForm (obj.Name)
            Debug.Print Forms(obj.Name).RecordSource
come fare per forzare la chiusura della form            
 
DoCmd.Close   <--------------------------
 
 
 
    For Each obj In dbs.AllForms
        If obj.IsLoaded = True Then
            ' Print name of obj.
            Debug.Print obj.Name  ' restituisce il nome della Form
 
            Debug.Print Forms(obj.Name).RecordSource
 
            ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        Else
            DoCmd.OpenForm (obj.Name)
            Debug.Print Forms(obj.Name).RecordSource
            DoCmd.Close
        End If
 

...
 
Ma la leggi la guida....???? leggi i parametri del close... ed usali.
 
Poi porta pazienza, ma non si capisce cosa chiedi... quì non puoi
formattare il codice, quindi devi essere chiaro con la DOMANDA...!
 
@Alex