Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Access 2002] Access und Formulare bzw suchen
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
revo86
Newbie
Newbie


Anmeldedatum: 14.04.2008
Beiträge: 27

BeitragVerfasst am: 05.05.2008, 08:29 Nach oben

Hey Leute,

Ich habe mehrere Access Probleme, bei denen Ihr mir sicher helfen könnt.

Problem 1: Ich habe ein Formular erstellt. Wenn dieses geöffnet wird, dann sollen die Felder leer sein, gleiches gilt wenn ein Formular ausgefüllt wurde und ein weiteres gleich hintendran gesetzt wird.

Eventuell wollte ich auch noch eine verwerfen Taste einbauen, also wenn die Eingabe abgebrochen wird, das alle Felder wieder leer sind und die Teils erfolgten Eingaben nicht gespeichert werden.

In diesem Formular möchte ich ebenfalls verhindern, dass man die Einträge editiert, in dem man versehentlich das Mausrad dreht und in die ausgefüllten Felder schreibt. Dies sollte nur in einem Extra Editierbereich möglich sein.

Das Formular ist schon erstellt. Nur mit Eingabefeldern, jedoch wäre bei einer Angabe ein Listenfeld mit 13 Vorgabewerten sinnvoller - zum einen Komfortabler und zum anderen lassen sich die Angaben später besser Filtern und ausdrucken.

Problem 2: Ausserdem hatte ich vor, die Suche bzw Filterfunktion auch auf Basis eines reinen vordefinierten Formulars zu erstellen, in dem man sich die Datensätze hauptsächlich durch Listenfelder in seltenen Fällen mit Textfeldern anzeigen lassen kann. Allerdings hapert es dort auch bereits bei erstellen :(

Weiß jemand wie sich diese Wünsche realisieren lassen?

mit freundlichen Grüßen
Bastian
Benutzer-Profile anzeigenPrivate Nachricht senden
jens05
Newbie
Newbie


Anmeldedatum: 16.04.2008
Beiträge: 27

BeitragVerfasst am: 05.05.2008, 22:18 Nach oben

Hallo,
wie sieht der Formularaufbau aus?
Genügt dir vielleicht schon die Formulareigenschaft "Daten eingeben", welche du auf Ja setzt, um immer leere Eingabefelder vorzufinden? Damit sollte dann auch das Scrollen verhindert werden.

Anderenfalls setze die Formulareigenschaft "Bearbeiten zulassen" auf Nein, damit kannst du nur "neue Datensätze" anfügen, aber keine alten Editieren". Um dabei zu den leeren Feldern zu gelangen sollte im Formularereignis "Beim öffnen" folgendes hinterlegt werden
Code:
    DoCmd.RunCommand acCmdRecordsGoToNew

Als Ereignisprozedur hinter deinem "Verwerfen" Button sollte
Code:
    Me.Undo
funktionieren.

Zum anderen Punkt, soll das Listenfeld der Ergebnispräsentation dienen, oder als Filterhilfe?
Benutzer-Profile anzeigenPrivate Nachricht senden
revo86
Newbie
Newbie


Anmeldedatum: 14.04.2008
Beiträge: 27

BeitragVerfasst am: 06.05.2008, 16:46 Nach oben

Hey Jens,

danke dir - bin natürlich jetzt nicht darauf gekommen, mal in den Eigenschaften nachzusehen *Kopfstoß*.

Also das mit dem Listenfeld habe ich nun bereits selber hinbekommen. Es soll der Vereinfachung der Eingabe und später auch der Ausgabe dienen.

Ich habe ja bereits im Excel Forum mehrere Beiträge verfasst und die Excel Datei und Access Datenbank werden später aufeinander aufbauen, also Access zum Sammeln der Daten und Excel zum Auswerten.

Darum muss ich in Access auch umfangreiche Filterfunktionen einbauen um später die Auswertung genau durchzuführen.

Eventuell kannst du mir also doch noch erklären, wie ich durch ein Listenfeld meine Datensätze nach einem oder mehreren Kriterien anzeigen lassen kann Smile

So nun erstmal Feierabend.

Gruß
Benutzer-Profile anzeigenPrivate Nachricht senden
revo86
Newbie
Newbie


Anmeldedatum: 14.04.2008
Beiträge: 27

BeitragVerfasst am: 07.05.2008, 16:16 Nach oben

Hey,

soweit steht die Tabelle und funktioniert auch einwandfrei. Gibt es eine Möglichkeit das Formular zu öffnen, ohne direkt Gefahr zu laufen etwas in der Entwurfsansicht zu öffnen und zu verändern (Sowohl an den Datensätzen, als auch an den Formularen selber?) Die Datensätze sollen nur in einem bestimmten Formularpunkt "Administrator" nachträglich zu verändern sein, und das Formular nur, wenn man es direkt über Access öffnet.

Ich hoffe mal da gibt es eine Möglichkeit. Nun erstmal genug Dumm gefragt.

mfg
Bastian
Benutzer-Profile anzeigenPrivate Nachricht senden
revo86
Newbie
Newbie


Anmeldedatum: 14.04.2008
Beiträge: 27

BeitragVerfasst am: 08.05.2008, 08:16 Nach oben

Guten Morgen Leute,

Eine Frage zu Formularen und dem Eingeben des Datums:

Ich habe ein Textfeld, indem man das Jeweilige Datum zur Anlieferung einträgt. Aus Gründen der Arbeitserleichterung habe ich vor, noch eine Schaltfläche einzubauen, mit der man einen klick macht und sich das "heutige" Datum in das betreffende Textfeld einträgt. Wie ist das zu realisieren?

Eine andere Möglichkeit wäre, dass sich das aktuelle Datum automatisch beim speichern einträgt, sobald man das Feld frei lässt.

mfg
Bastian
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 05.03.2007
Beiträge: 171
Wohnort: Kiel

BeitragVerfasst am: 08.05.2008, 10:19 Nach oben

revo86 hat Folgendes geschrieben:
Eventuell kannst du mir also doch noch erklären, wie ich durch ein Listenfeld meine Datensätze nach einem oder mehreren Kriterien anzeigen lassen kann Smile

Da ich gerade selbst sowas gebastelt habe, hier mal mein Ansatz:

Ich habe ein Endlos-Formular, in dem Dateinamen aufgelistet werden (PDF-Dokumente), die gescannte Motorakten beinhalten. Durch Filter-Funktionen soll der angezeigte Bereich eingrenzbar sein.

In dem Formular (siehe Screenshot) gibt es die Buttons "Filter" und "alle", mit denen nach den eingestellten Kriterien gesucht wird bzw. die Suchfelder gelöscht und wieder alle Datensätze angezeigt werden.

Die Buttons haben dabei folgenden Code:

Code:
Private Sub B_Filter_setzen_Click()
    Suchfilter_aufbauen
End Sub

Private Sub B_Filter_loeschen_Click()
    Me!MotorZylAuswahl.Value = ""
    Me!MotorMuAuswahl.Value = ""
    Me!MotorBauAuswahl.Value = ""
    Me!MotorVarAuswahl.Value = ""
    Suchfilter_aufbauen
End Sub


Die xxxAuswahl-Felder sind dabei u.a. die Combo-Boxen am unteren Rand des Formulars. Der eigentliche Aufbau des Suchfilters sieht dann so aus:

Code:
Private Sub Suchfilter_aufbauen()
    Dim v(5) As String
    Dim f(5) As String
    Dim s As String
    Dim n As Long
    v(1) = Trim$(Me!MotorNrAuswahl.Value & " "): f(1) = "motornummer"
    v(2) = Trim$(Me!MotorZylAuswahl.Value & " "): f(2) = "motorzyl"
    v(3) = Trim$(Me!MotorMuAuswahl.Value & " "): f(3) = "motormu"
    v(4) = Trim$(Me!MotorBauAuswahl.Value & " "): f(4) = "motorbau"
    v(5) = Trim$(Me!MotorVarAuswahl.Value & " "): f(5) = "motorvar"
    s = ""
    For n = 1 To 5
        If v(n) <> "" Then
            If s <> "" Then
                s = s & " AND "
            End If
            s = s & "([" & f(n) & "] = '" & v(n) & "')"
        End If
    Next n
    If s <> "" Then
        's = "(" & s & ")"
        DoCmd.ApplyFilter , s
      Else
        DoCmd.ShowAllRecords
    End If
End Sub


Eigentlich also ganz simpel: Es werden die einzelnen Suchfelder, sofern belegt, mit einer AND-Verknüpfung in eine WHERE-Klausel zusammengeklebt.

Da es sich hierbei komplett um alphanumerische Felder handelt, sind die "values" jeweils in ' eingefaßt, was direkt neben dem " vielleicht etwas schwer zu erkennen ist. Bei rein numerischen Feldern entfallen diese ("CASE n" wäre da hilfreich).

Außerdem: Wenn nach Teilstrings gesucht werden soll (Feld beginnt mit, endet mit, enthält), dann muß "=" mit "LIKE" ersetzt werden und "%"-Zeichen äquivalent zum * in DOS-Dateinamen angefügt werden.

Beispiel:
[xxx] LIKE 'abc%'
Das findet alle Felder, die mit 'abc' anfangen.

Das Ding ist ausbaufähig, aber das kommt immer auf die die Situation an. Z.B. ist vielleicht nicht AND sondern OR als Verknüpfung notwendig. Aber als Grundgerüst solltest Du damit eigentlich schonmal weiterkommen, oder?

Gruß, Michael


Suchfilter.gif
 Beschreibung:
 Dateigröße:  67.63 KB
 Angeschaut:  232 mal

Suchfilter.gif


Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 05.03.2007
Beiträge: 171
Wohnort: Kiel

BeitragVerfasst am: 08.05.2008, 11:01 Nach oben

revo86 hat Folgendes geschrieben:
Aus Gründen der Arbeitserleichterung habe ich vor, noch eine Schaltfläche einzubauen, mit der man einen klick macht und sich das "heutige" Datum in das betreffende Textfeld einträgt.

Button aufs Formular und als Ereignis etwas in der Art:
Code:
me!Datumsfeld.Value = Now()

oder ggf. auch lieber:
Code:
me!Datumsfeld.Value = Int(Now())

(Mit der zweiten Variante wird keine Uhrzeit mit eingetragen, sondern nur das reine Datum.)

Zitat:
Eine andere Möglichkeit wäre, dass sich das aktuelle Datum automatisch beim speichern einträgt, sobald man das Feld frei lässt.

Auch hier gleicher Code, nur beim Formular-Ereignis "BeforeUpdate" (VorAktualisierung). Hier wäre dann ev. noch eine Klammung mit "If IsNull(Me!Datumsfeld.Value) Then" sinnvoll, wenn das Datum nicht bei jedem Speichern aktualisiert werden soll.

Und als vielleicht einfachste Methode: Setz "=Ganzzahl(Jetzt())" doch einfach als Standard-Wert des Feldes im Formular. Wink

Gruß, Michael
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 05.03.2007
Beiträge: 171
Wohnort: Kiel

BeitragVerfasst am: 08.05.2008, 11:08 Nach oben

revo86 hat Folgendes geschrieben:
Gibt es eine Möglichkeit das Formular zu öffnen, ohne direkt Gefahr zu laufen etwas in der Entwurfsansicht zu öffnen und zu verändern

Das wiederum ist schon eine reichlich umfangreiche Geschichte, die darauf basiert, daß man dem Anwender das Datenbank-Fenster garnicht erst anzeigt, sondern direkt im Start ein Formular öffnet.

Von diesem aus muß man dann per Buttons in alle anderen Formulare gelangen können. Mit entsprechenden User-Rechten läßt sich dann das Aufrufen von bestimmten Formularen ganz verhindern oder der Bearbeitungsmodus einstellen.

Das ist aber alles in allem ein Haufen Arbeit, die dann reingesteckt werden muß. Wenn man das sauber zusammenstellt, bekommt man eine Anwendung, bei der man eigentlich nicht mehr richtig erkennen kann, daß MS-Access dahinter steckt.

Gruß, Michael
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Suchen/Ersetzen über Makro msdd79 Microsoft Excel Hilfe 3 15.07.2008, 15:28 Letzten Beitrag anzeigen
Keine neuen Beiträge Access-Tutorial öffnen crudelis Pernicies Lob, Kritik und Verbesserungsvorschläge 0 04.07.2008, 23:24 Letzten Beitrag anzeigen
Keine neuen Beiträge Mehrere Wörter gleichzeitig in einem ... fixtroedelfuchs Microsoft Excel Hilfe 2 04.07.2008, 14:57 Letzten Beitrag anzeigen
Keine neuen Beiträge Suchen und Kopieren in Word jko_muc Microsoft Word Hilfe 0 27.06.2008, 13:34 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de