berichtübergreifende Suche nach einem String in Text- oder Bezeichnungsfeldern

15/09/2011 - 17:10 von Andreas | Report spam
Hallo,

ein kurze Frage:

Kann ich "statische" Texte von Berichten nach ihren Inhalten
durchsuchen?

Konkret:
In einer vorliegenden Datenbank werden in vielen Berichten Text- und
Bezeichnungsfelder verwendet, um eine Anschrift darzustellen.
Nun hat sich die Anschrift geàndert und ich würde gern überprüfen, in
welchen Berichten die Daten angepasst werden müssen.
Vermutlich ist es an dieser Stelle grundsàtzlich klüger mit Konstanten
zu arbeiten oder die Daten direkt aus der Datenbank einzubinden, aber
mich würde trotzdem interessieren, ob eine solche Suche mit
Bordmitteln oder externen Tools möglich ist. Ist es?

Viele Grüße,
Andreas
 

Lesen sie die antworten

#1 Ekkehard Böhme
15/09/2011 - 22:48 | Warnen spam
Hallo Andreas,

Hallo,

ein kurze Frage:

Kann ich "statische" Texte von Berichten nach ihren
Inhalten
durchsuchen?

Konkret:
In einer vorliegenden Datenbank werden in vielen
Berichten Text- und
Bezeichnungsfelder verwendet, um eine Anschrift
darzustellen.
Nun hat sich die Anschrift geàndert und ich würde gern
überprüfen, in
welchen Berichten die Daten angepasst werden müssen.
Vermutlich ist es an dieser Stelle grundsàtzlich klüger
mit Konstanten
zu arbeiten oder die Daten direkt aus der Datenbank
einzubinden, aber
mich würde trotzdem interessieren, ob eine solche Suche
mit
Bordmitteln oder externen Tools möglich ist. Ist es?

Sollte gehen.
Eine Schleife durch die Auflistung
CurrentProject.AllReports, und dann pro Bericht die
Controls durchlaufen.
Per ControlType auf Text- bzw. Bezeichnungsfeld prüfen.
Dann die entsprechende Eigenschaft .Value bzw. .Caption
mit InStr auf Deinen Suchbegriff überprüfen.
Ungefàhr so (Luftcode ohne Deklarationen)

For Each rpt in CurrentProject.AllReports
For Each ctl in rpt.Controls
If ctl.ControlType=acTextBox(?) Then
If InStr(1,ctl.Value,strSuche)>0 Then
Debug.Print rpt.Name
Debug.Print ctl.Name
End If
Elseif ctl.ControlType=acLabel(?) Then
If InStr(1,ctl.Caption,strSuche)>0 Then
Debug.Print rpt.Name
Debug.Print ctl.Name
End If
End If
Next ctl
Next rpt

Wenn Du da feste Begriffe durch feste Begriffe ersetzen
kannst, machst Du das direkt da, wo jetzt Debug.Print
steht.

Viele Grüße,
Andreas

hth
gruss ekkehard

Ähnliche fragen