Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Suchfeld in Access 2010

Frage Microsoft Microsoft Office

Mitglied: Doskias

Doskias (Level 1) - Jetzt verbinden

14.05.2013, aktualisiert 15.05.2013, 5682 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst Syntaxfehler VBA Access 2010 (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 Abfrage erster Werktag (10)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 komplizierte Abfrage (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Hilfe bei "Distinct" Befehl in Access 2010 (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...