Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Microsoft Microsoft Office

GELÖST

Suchfeld in Access 2010

Mitglied: Doskias

Doskias (Level 1) - Jetzt verbinden

14.05.2013, aktualisiert 15.05.2013, 6220 Aufrufe, 3 Kommentare

Hallo zusammen,

nach 7 Jahres Access-Abstinenz bin ich doch wieder gezwungen mich an Access zu setzen und eine kleine Datenbank mit entsprecehenden Formularen zu entwerfen. Der datenbankaufbau und alles hat wunderbar funktioniert. Nur scheitere ich aktuell an einem Suchfeld. Nachdem ich jetzt über 20 verschiedene Links und Möglichkeiten aus Internet ausprobiert habe (und auch hier im Forum fündig wurde), möchte ich mein Anliegen nun doch einmal expliziet zum Ausdruck bringen:

Vorweg:
Ich habe das Formular erstellt und alle Felder im Formular stimmen auch überein. Es geht hier um Kunden, daher ist der Kundenname für das hier beschrieben Suchverfahren ausschlaggebend.

Als nächstes habe ich ein Listenfeld erstellt. Hierzu habe ich den Assistenten verwendet und die Option "Einen Datensatz im Formular anhand des Wers suchenm den ich im Listenfeld ausgewählt habe" ausgewählt. Das ausgewählte Feld ist lediglich der Kundenname. In der Übergabe sehe ich nun meine 5 Testeinträge. Wechsel ich nun von der Entwurfsansicht auf die Formularansicht, kann ich die 5 Einträge sehen und auswählen. Hierbei wird der entsprechende Datensatz dann ausgewählt. Soweit so gut.

Problem 1: Unter "Enthält Modul" des Formulars ist die option "ja" angewählt. Mit dieser Option lässt sich das Formular jedoch nicht speichern. Deaktiviere ich das Formular hingegen, so kann ich das Formular zwar speichern, aber die Auswahlfunktion funktioniert nicht mehr. Ich kann dann alle Werte anklicken, aber die Datensätze aktualisieren sich nciht mehr.

Also habe ich zunächst ohne Speichern weiter gearbeitet und getüftelt. Der Plan ist, ein Suchfeld vorzuschalten. In dieses Suchfeld soll ein beliebiger Begriff eingegeben werden und das Ergebnis soll automatisch in das eben beschrieben Listenfeld
gelistet werden. Hierzu wollte ich die Option "Bei Eingabe" als Ereignis nutzen. Aber auch hier habe ich es nicht geschafft ein Ereignis zu definieren, welches das Listenfeld füllt. Ich habe folgende Kunden eingegeben:
- test
- testeins
- einstzwei

Die Eingabe von "test" soll demnach 2 Eiträge im Listenfeld, die Eingabe von "teste" 1 Eintrag und die Eingabe von "st" 3 Einträge im Listenfeld erzeugen. Ein Klick auf den ausgewählten Eintrag soll dann alle Daten des Datensatz im Formular anzeigen

Problem 2: Wie bekomm ich das hin?

Ich kann auf Grund der Vielzahl der Versuche in den letzten Tagen nicht alle Seiten auflisten, daher bitte ich von Links abzusehen, es sei denn sie beschreiben direkt meinen Wunsch. Die Seite http://www.tutorials.de/relationale-datenbanksysteme/144014-access-such ... beschreibt es hervorragend, funktioniert aber aus irgendeinem Grund bei mir nicht. Ich vermute auch hier schlägt Problem 1 zu.

Noch etwas zur Datenbank: Alle Felder sind mit Standardwerten vorbelegt, so dass es keine leeren Datenbankfelder geben kann.

Noch etwas zu mir. Eine komplette Lösung meines Problems wäre natürlich perfekt, aber auch mit hinweisen und/oder der Reihenfolge der zu verwenden Befehle ist mir weitergeholfen. Ein kleiner Bastler steckt doch in jedem der sich mit Datenbanken rumschlägt.
Mitglied: Xaero1982
15.05.2013 um 10:11 Uhr
Moin,

ich bin vermutlich nicht der einzige, der spätestens bei Problem 1 abgeschaltet hat.

Ich kann nicht ganz nachvollziehen was du vor hast.

Was ich verstanden habe:
Du hast ein Formular - so weit so gut.

Dort hast du ein Suchfeld.
In dieses Suchfeld gibst du ein was du suchst bzw. wählst es aus?

Ist dies erfolgt soll automatisch dieser Kunde gewählt werden und weitere Daten in dem gleichen Formular angezeigt werden?

Du willst eine Suche mit Wildcards?

Wenn ich Kunden habe weiß ich zumindest den Anfang und nicht irgendwas aus der Mitte des Namens...ist das sinnvoll?

Vielleicht kannst du etwas "einfacher" beschreiben was du vor hast.

Ansonsten einfach mal die DB bereit stellen ohne Daten - wobei da vermutlich eh nur Testdaten enthalten sind bisher.


Gruß
Bitte warten ..
Mitglied: Doskias
15.05.2013 um 10:52 Uhr
So.. hier nun mal das Bild (nachdem es mir gelungen ist, es hochzuladen )

98ea63b63b8bb56472b5993f7b25020e - Klicke auf das Bild, um es zu vergrößern

Im Schritt 1 möchte ich in das Suchfeld ein Begriff Eingeben. Zum Beispiel "Test". Unter Kundenliste sollen dann alle Kunden angezeigt werden, in denen Irgendwo Test drin vorkommt. Am Anfang, am Ende oder irgendwo dazwischen. Dann möchte ich aus der Kundenliste einen Kunden auswählen und dieser soll dann im 2.Schritt unten angezeigt werden.

Der zweite Schritt funktioniert solange ich in den Formulareingeschaft die Option Enthält Modul auf "ja" gesetzt lasse. Stelle ich die Option auf Nein, dann funktionier die Auswahl im Schritt zwei nicht. Stell ich sie jedoch nicht auf Nein, so kann ich das Formular nicht abspeichern. Ohne das Suchfeld, zeigt mir die Kundenliste immer alle Kunden an, was aber ab einer gewissen Kundenanzahl nicht mehr sinnvoll ist. Daher die Idee das Suchfeld vorzuschalten um diese Auswahl einzugrenzen.

Ich weiß, dass diese Möglichkeit existiert, da ich vor 5 Jahren einmal in einem Unternehmen gearbeitet habe, wo eine solche Suche in Access existierte. Leider arbeitet der Entwickler dort nicht mehr und ich habe keinen Kontakt mehr zu ihm.
Bitte warten ..
Mitglied: Xaero1982
LÖSUNG 19.05.2013, aktualisiert 12.11.2014
Hi,

da wir das Problem nun mehr oder minder per Mail geklärt haben; hier noch mal für alle ein kleiner Ansatz:

Suchfeld: Das Suchfeld ;P
Text22: Das ist das Listenfeld (zu faul zum umbenennen;P ) Muss bei "Herkunftstyp" den Eintrag "Wertliste" haben.
allgemeinReaktion: Ein Feld aus der Tabelle

01.
Option Compare Database 
02.
Option Explicit 
03.
 
04.
 
05.
Private Sub Suchfeld_AfterUpdate() 
06.
    Dim rcsKunden As Recordset 
07.
    Set rcsKunden = CurrentDb.OpenRecordset("SELECT Servicekunden.Kundenname FROM Servicekunden WHERE Servicekunden.Kundenname Like '*" & Me.Suchfeld & "*'", dbOpenDynaset) 'Die Abfrage sollte klar sein... mit '*" & Me.Suchfeld & "*' greifst du auf das Suchfeld zu die * sind Platzhalter 
08.
    Text22.RowSource = "" 'hiermit leerst du das Listenfeld, damit bei einer neuen Suche die alten Einträge gelöscht sind 
09.
       
10.
    Do Until rcsKunden.EOF 'Eine Schleife so lange Suchergebnisse in rcsKunden vorhanden sind 
11.
        'Me.Text22 = Me.Text22 & rcsKunden.Fields("Kundenname") & vbCrLf ''hiermit fügst du die ausgelesenen Werte aus der DB Zeilenweise einem TEXTFELD hinzu - das habe ich aber entfernt 
12.
        Text22.AddItem rcsKunden.Fields("Kundenname") 'hiermit fügst du die ausgelesenen Werte aus der DB Zeilenweise dem LISTENFELD hinzu 
13.
        rcsKunden.MoveNext 'damit rufst du einfach den nächsten gefundenen Datensatz auf 
14.
    Loop 
15.
     
16.
    If rcsKunden.RecordCount = 0 Then 'hiermit zählst du die Anzahl von Datensätzen. Wenn die Zahl 0 ist, gibt es keinen Kunden mit dem Namen 
17.
        MsgBox "Kein Kunde mit dem Namen '" & Me.Suchfeld & "' gefunden!" 'hier wird eine Fehlermeldung ausgegeben 
18.
    End If 
19.
 
20.
End Sub 
21.
 
22.
Private Sub Text22_Click() 
23.
Dim rcsKunden As Recordset 
24.
    Set rcsKunden = CurrentDb.OpenRecordset("SELECT * FROM Servicekunden WHERE Servicekunden.Kundenname = '" & Me.Text22.Value & "'", dbOpenDynaset) 
25.
     
26.
    Me.allgemeinReaktion = rcsKunden.Fields("allgemeinReaktion") 
27.
 
28.
End Sub 
29.
 
Das "Testformular" bestand nur aus drei Feldern.
Aus dem "Suchfeld", einem Listenfeld in dem die Suchergebnisse ausgegeben wurden und zum Testen der Auswahl aus dem Listenfeld ein Feld aus der Tabelle.

In der "Prozedur" Text22_Click() werden die Felder, entsprechend der Kundenauswahl, mit den Daten aus der Tabelle die bei dem entsprechenden Kunden hinterlegt sind, gefüllt.

Man kann natürlich noch einen Button hinzufügen zum Ausführen der Suchfunktion - dort kopiert man die gleichen Zeilen ein wie oben unter Suchfeld_AfterUpdate().

Gruß
Bitte warten ..
Ähnliche Inhalte
JavaScript
Suchfeld zurücksetzen
gelöst Frage von timeoffJavaScript3 Kommentare

Hallo zusammen, ich hab mal eine kurze Frage an euch. Und zwar benutze ich folgendes Script zum durchsuchen einer ...

Microsoft Office
Hilfe bei Erstellung eines Suchfelds im Excel
Frage von ZeeReeMicrosoft Office1 Kommentar

Hi liebe community ich bräuchte mal eure Kenntnisse um mein Problem im Excel zu lösen. Problem: Ich brauche ein ...

Webentwicklung
Einfaches Suchfeld auf Indexseite
gelöst Frage von ModdryWebentwicklung19 Kommentare

Hallo :) Ich habe hier eine Liste von den Telekom Hauptverteilern, die sehr groß ist. Deswegen möchte ich eine ...

Datenbanken
Access 2010 Filter zurücksetzen
gelöst Frage von Dr.CornwallisDatenbanken6 Kommentare

Liebe Gemeinde, wieder mal ein Access/VBA Problem: ich habe eine Abfrage, SQL Code: Diese Abfrage ist mit einem Formular ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 6 StundenLinux1 Kommentar

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit23 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen22 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...