Office: (Office 2010) Suchfunktion erstellen

Helfe beim Thema Suchfunktion erstellen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Community, ich hab mich vor ca 2 Minuten angemeldet, in der Hoffung, dass ihr mir bei meinem Problem in Access weiterhelfen könnt. Nach 2... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von planbar, 4. März 2013.

  1. Suchfunktion erstellen


    Hallo liebe Community,

    ich hab mich vor ca 2 Minuten angemeldet, in der Hoffung, dass ihr mir bei meinem Problem in Access weiterhelfen könnt. Nach 2 Tage erfolgloser Recherche bin ich leider noch keinen Schritt weiter.

    Hier zu meinem Problem:

    Ich habe eine Datenbank mit Access 2010 erstellt. Diese dient dazu Bauschäden speziell für Böden zu dokumentieren.
    Diese Datenbank besitzt eine Tabelle, hier sind die alle Attribute so gewählt, dass ein Schaden in allen Facetten festgehalten wird (z.B. fehlerhaftes Material, fehl. Eigenschaft, Lösung, Kosten per qm, hinterlegtes Gutachten(Anlage zu einer Datei))

    Eine Eingabemaske hab ich nun nach längerer Beschäftigung mit der Entwurfsansicht und dem Makrogenerator.

    Was nun mein Problem ist:

    Ich möchte nun eine Suche erstellen.
    (Zum Eingang wird ein Navigationsformular erscheinen über das man per Button zum Suchformular gelangen soll - wurde schon erfolgreich erstellt.)
    Folgende Funktionen soll dies Suchformular / die Suchfunktion erfüllen:
    1. Ich möchte in einem(oder mehrere?) Textfeld einen oder mehrere Suchbegriffe eingeben können
    2. Mit diesen Suchbegriffen sollen alle Felder der Tabelle durchsucht werden
    3. Die Datensätze die irgendwo die Suchbegriffe enthalten sollen in vollem Umfang ausgegeben werden (automatisch generierter Bericht?)

    Ich habe dieses Problem weder im Makro-Generator noch in dem Code Generator lösen können. Auch im Internet gefundene Suchformulare konnte ich nicht ummodeln und auf meine Datenbank anpassen.
    Code-Kentnisse sind nicht vorhanden. Sorry!

    Ich hoffe ihr könnt mir mit Denkansätzen oder Ideen zur Lösung bringen *Smilie

    Vielen Dank im Vorraus

    :)
     
    planbar, 4. März 2013
    #1
  2. Hallo,
    Ich denke da wirst Du bei Makros auch nichts finden, auch der "codegenerator" wird dir nichts automatisieren, ich habe hier

    http://www.ms-office-forum.net/forum...d.php?t=297958 #11

    Was dazu geschrieben, da ist ein textfile mit einer Funktion dabei, die im Hintergrund einen String zusammen baut, ohne vba oder sql Kenntnisse wird das aber schwierig

    Gruß hgs
     
    hgs_x, 6. März 2013
    #2
  3. Damit kann ich leider nichts anfangen... ist für mich eben ein ellenlanger text bei dem ich nichtmal im ansatz verstehe was wo passiert udn ausgeführt wird

    Ich hätte jemanden der sich in SQL auskennt an der hand.
    Versteht das Eingabefenster für VBA auch komplett alles aus SQL oder nur bestimmte sachen?
     
    planbar, 6. März 2013
    #3
  4. Suchfunktion erstellen

    Nein vba kann vba, um sql zu nutzen musst du bestimmte befehle und richtlinien nutzen. was ich da als anhang beigetan habe ist eine Funktion die aus einem Formular durch einen Klick auf einen Button aufgerufen wird. Sie durchläuft das aktuelle Formular und überprüft, in welchen Feldern etwas steht. Diese Werte werden dann in ein sql-Statement übernommen und auf ein neues Formular oder report gelegt. Es ist egal, wie viele Felder da sind, man muss dann im Quelltext die entsprechenden Felder eintragen. Das Suchformular sieht bei mir so aus wie das Eingabeformular für die zu suchenden DAten (damit man weiss wo was steht). Wie gesagt es ist dann eine Volltextsuche über alle Felder einer Datenquelle. Man kann dort auch noch andere Variationen einbauen( between-Teile, logische Teile, Sortiervorgaben und Ansichten die man vorauswählen kann)....
    Ohne vba und sql kommst du da sicher nicht weiter....
     
    hgs_x, 6. März 2013
    #4
  5. Moin,
    und willkommen hier im Forum.

    Eine Suche (über alle Felder einer Tabelle) ist nicht soooo schwierig. Bei diesem Beispiel gehe ich von einem Formular aus, das alle Daten aus der Tabelle anzeigt. In den Kopf des Fromulars setzt du dir am besten einen Button und ein Textfeld ohne Steuerelementinhalt (ungebunden).

    In das Textfeld kannst du einen Suchbegriff eingeben (ich nenne es mal txtSuche). Der Button (btnSuche) bekommt in seinen Eigenschaften eine Ereignisprozedur beim Klicken zugewiesen.
    Code:
    Mit LIKE und OR wird dann in jedem angegebenen Feld das Vorkommen des Textes aus dem Suchfeld geprüft und das Formular dann gefiltert. (Namen der Tabellenfelder ersetzen durch deine.)

    ABER: Deine Beschreibung (eine Tabelle mit allen Attributen) und der Wunsch alle Felder durchsuchen zu müssen, das klingt mir sehr nach einem sagen wir mal suboptimalen Datenmodell.
    Die Schäden eines Fußbodens z.B. sollten eigene einzelne Datensätze in einer Tabelle Schaeden sein, die mit einer Tabelle Fußboden n:1 verknüpft ist.

    Wenn du nur eine blosse Aufnahme der Daten machen willst, das geht auch ganz prima mit Excel.

    Ansonsten solltest du dich vorher noch mal mit den Anforderungen, die deine DB erfüllen soll, auseinandersetzen, ein geeignetes Datenmodell dazu entwickeln und dich dann in Schritt 3 erst mit der Oberfläche in Form von Formularen, Berichten etc. beschäftigen.

    Einen Einstieg in das Thema Datenbankgrundlagen findest du unter anderem hier: Access-Tutorial: Lernen Sie Microsoft Access Datenbanken zu erstellen! und auch hier A. Kelz: Relationale Datenbanken.

    Ohne eine solche solide Grundlage wirst du mit Access nicht weit kommen.

    maike
     
    maikek, 6. März 2013
    #5
  6. Danke für deine Hilfe!

    Ich hab mit mittlerweile mehrere Codes in der Hinsicht durchgelesen, bin sie auch Schritt für Schritt durchgegangen und mittlerweile kann ich so ansatzweiße verstehen was wo und wann passieren sollte.

    Jetzt hätte ich noch ein paar Fragen:
    1. Wo gebe ich diese VBA-Codes denn ein? im Detailbereich, beim klicken, beim anzeigen? Muss ich für jeden Befehl ein eigenens Makro erstellen lassen?

    2. diese Präfixe: txt oder btn, wenn ich diese im Code stehen habe, muss ich dann mein Textfeld "Suche" (somit wären die Präfixe zur steuerelementerkennung zuständig) nennen oder muss es "txtSuche" (somit wären die Präfixe zu eindeutigen Namenserkennung zuständig) nennen?

    3. was bedeutet der Präfix "fo" ?

    Vielen Dank dass du dir Gedanken machst zu Optimierung der Datenbank, jedoch weiß ich dass es vorerst auf der Basis reicht die ich mir erstellt habe. Mich noch weiter einzulesen - und alle steuerelemente und suchen dann wieder auf derartige Veränderungen anzupassen beansprucht zu viel zeit, die ich leider nicht habe *tongue.gif*

    danke für eure Hilfe
     
    planbar, 6. März 2013
    #6
  7. Formular -> Entwurfsansicht. Button btnSuche -> rechte Maustaste/Eigenschaften. Dort unter Ereignis "Beim Klicken" Ereignisprozedur auswählen und dann auf die ... klicken. Damit kommt du in den VBA-Editor, direkt in das VBA-Modul deines Formulars, wo schon eine Rumpfprozedur (Sub) für den Button angelegt ist.
    Dort den Code (angepasst) eingeben.
    Was meinst du damit? Alle Befehle, die in dem von mir geposteten Code zwischen Private Sub .... und End Sub stehen, werden bei Buttonklick abgearbeitet.
    Ja. Die Präfixe dienen zum einen der eindeutigen Identifizierung des Steuerelements (oder anderer Objekte, Variablen etc.) und geben, wenn durchgängig und sinnvoll eingesetzt, auch einen Hinweis auf Datentyp, Objekttyp usw. Sie sind aber in jedem Fall Bestandteil des Namens.
    Das ist, auch unter oben beschriebenen Voraussetzungen, nicht so eindeutig zu beantworten. Könnte ein File System Object sein ... oder ein Formular ....
    Dazu müsste ich den Zusammenhang kennen. Jeder hat halt so seine eigenen Vorlieben beim Vergeben der Präfixe.

    Ob du deine Datenbank vernünftig aufsetzt oder nicht, ist deine Entscheidung.
    Ob ich dann für die Hilfe beim nächsten Workaround (der dann möglicherweise nicht mehr so easy ist) auch noch Zeit haben werde, ist meine Entscheidung.

    maike
     
    maikek, 7. März 2013
    #7
  8. Suchfunktion erstellen

    Vermutlich hast Du sie dann später, wenn die ersten Änderungsanforderungen kommen, oder?

    SCNR
     
    CptChaos, 7. März 2013
    #8
  9. Den VBA Editor kannte ich schon, tut mir leid dass ich meine Frage so unpräzise formuliert habe. Was ich meinte ist wenn ich einen Code habe in dem mehrere Buttons und Funktionen beschrieben werden die alle in einem Formular enthalten sind. Wo gebe ich diesen "Formularcode" ein? Im Formular oder im Detailbereich? beim Klicken oder beim Laden oder beim Anzeigen?

    okay das ist dann wie "sauberes" und "gepflegtes" Programmieren, damit man während man den Code liest, versteht was zu was gehört und was es gleich für ein objektyp ist.


    Bitte verurteilt mich nicht, jedoch ist es nur eine Arbeit. Da ich unter Zeitdruck stehe, bei dem Problem der Suche nicht mehr weiterkomme und sie ja noch komplizierter werden würde je mehr ich das Datenbanksystem ausfeile,
    muss es vorerst so passen wie ich sie aufgebaut habe.
    Auch muss es derartig aufgebaut sein, da eine umfangreichere DB auch den umfang der Arbeit sprengen würde.
    Hier bitte ich um Verständnis. Danke

    Es wird wohl draus rauslaufen, dass ich mir von jemandem vom Fach zu Hand gehen lassen muss.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    planbar, 7. März 2013
    #9
  10. Das kommt darauf an *tongue.gif* . Wenn etwas bei Buttonklick passieren soll -> beim Buttonklick-Ereignis. Wenn etwas beim Öffnen des Formulars passieren soll -> Ereignis beim Öffnen des Formulars, ...
    Du müsstest dein Anliegen/deine Frage also schon etwas genauer beschreiben.

    Eben nicht.
    maike
     
    maikek, 7. März 2013
    #10
  11. hallo!

    Ich melde mich wieder zurück und bräucht nochmal eure hilfe...

    Folgender Code:
    Code:
    gibt mir folgenden Fehler wieder:
    "Syntaxfehler in der Where-Klausel" makiert ist die zeile "rs.Open sql, dbcon, adOpenStatic"

    Was ist falsch?

    Das Formular hat Kombinationsfelder in denen Suchwörter vorgeschlagen werden. Dann hat der Benutzer die möglichkeit eine "undSuche" oder eine "odersuche" zu starten.
    bei beiden kommt dieser fehler!

    Danke für eure hilfe
     
    planbar, 12. März 2013
    #11
  12. 3 Fragen:
    1. Warum ADODB?
    2. Wozu übergibst Du die Variable sql wenn Du sie anschließend immer überschreibst?
    3. Hast Du Dir mal den Inhalt von sql ausgeben lassen um zu prüfen ob hier eine ausführbare SQL-Anweisung drin steht (vgl. der Link "Erste Fehleranalyse mit Debug.Print" in meiner Signatur)
     
    CptChaos, 12. März 2013
    #12
  13. Suchfunktion erstellen

    Ich arbeite gerade mit einem fremden code, deswegen kann ich dir gerade auf 1. und 2. keine antwort geben ... mir ists nur wichtig dass es funktioniert.
    3. nein habe ich noch nicht

    Kannst du mir nicht sagen woran der fehler liegt?

    bei meiner "einfachen suche verwende ich die gleiche funktion und da klappts auch und gibt mir keinen fehler (stichwortsuche welche enthaltenen wörter aus einem textfeld entnimmt und dann bestimmte felder meienr datenbank damit durchsucht.)

    Nachtrag:
    hab das 3. mal gemacht:
    folgendes wird im direktbereich ausgegeben:
    Code:
    ich glaube er macht das richtige... denn er checkt doch meine spalten "stichwort1-10" ab ob darin mein suchwort "calciumsulfatestrich" enthalten ist, oder?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    planbar, 12. März 2013
    #13
  14. Warum nicht? Bzw. wieso hast Du es jetzt nicht gemacht?
    Ich weiß nicht woran der Fehler liegt... aber die Zeile sql = "SELECT Count(*) As AnzTreffer From tblDaten WHERE " & Replace(sql, "*", "%") wird m.E. keine brauchbare SQL-Anweisung ergeben.

    Ist Dir bewußt, was in dieser Zeile passiert?

    Und die Aussage "mir ists nur wichtig dass es funktioniert" gefällt mir nicht... Du solltest schon wissen und verstehen was Du hier tust; auch wenn es nicht Dein Code ist!
     
    CptChaos, 12. März 2013
    #14
  15.  
    planbar, 12. März 2013
    #15
Thema:

Suchfunktion erstellen

Die Seite wird geladen...
  1. Suchfunktion erstellen - Similar Threads - Suchfunktion erstellen

  2. Suchfunktion

    in Microsoft Excel Hilfe
    Suchfunktion: Ist es in der Suchfunktion (Strg + F) möglich, das als Voreinstellung nicht "Blatt" eingestellt ist, sondern "Arbeitsmappe".
  3. Suchfunktion erstellen

    in Microsoft Excel Hilfe
    Suchfunktion erstellen: Hallo Gemeinde, ich bin neu hier und bitte um Hilfe. Ich möchte eine Tabelle erstellen, die zur Suche von Datenanschlüssen verwendet werden soll. Fakten: 10 Gebäude mit je einem Datenschrank;...
  4. Suchfunktion für Listbox in Textbox

    in Microsoft Excel Hilfe
    Suchfunktion für Listbox in Textbox: Hallo an alle hier im Forum, ich bastel mal wieder ein wenig rum. Ich habe ein 2 spaltige Listbox. In der 1. Spalte stehen Zahlen von einstellig bis sechsstellig und in der 2. Spalte Namen. Im...
  5. Suchfunktion beschleunigen

    in Microsoft Word Hilfe
    Suchfunktion beschleunigen: Hallo, ich habe ein sehr großes Word-Dokument in dem ich sehr oft suche. Die Suche starte ich i.d.R. vom Anfang des Dokuments weil ich dann sehr häufig eine Fundstelle direkt im Inhaltsverzeichnis...
  6. Suchfunktion in Zeile einbinden ?

    in Microsoft Excel Hilfe
    Suchfunktion in Zeile einbinden ?: Hallo zusammen, leider finde ich irgendwie keine Lösung zu meinem Problem. Glaube aber das es gar nicht so schwer sein dürfte. Ich möchte einfach nur genau das gleiche was die Suchfunktion macht...
  7. Suchfunktion innerhalb der Foren

    in Lob, Kritik und Verbesserungsvorschläge
    Suchfunktion innerhalb der Foren: Hallo and das Office-Hilfe Team, ich bin vor Kurzem auf eure Seite aufmerksam geworden und finde sie sehr gut. Innerhalb der Foren ist es zwar möglich die Fragen und entsprechenden Antworten auf...
  8. Erstellen einer Suchfunktion mit Verlinkung

    in Microsoft Access Hilfe
    Erstellen einer Suchfunktion mit Verlinkung: Hallo liebe Forengemeinde, Nachdem ich seit wirklich vielen Tagen Google nach der Möglichkeit durchforste, eine Suchfunktion für meine Datenbank zu realisieren (leider bisher ohne nennswerten...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden