Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Bücherdatenbank
zurück: Datensätze Sperren weiter: Befehlsschaltflaeche zum leeren von Felder in Unterformular Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Bitte Status wählen ! Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Selket
Im Profil kannst Du frei den Rang ändern


Verfasst am:
29. Apr 2005, 22:50
Rufname:
Wohnort: Niedersachsen

Bücherdatenbank - Bücherdatenbank

Nach oben
       

Hallo zusammen,
habe für meine Firma eine Bücherdatenbank gebastelt, die sogar einigermassen funktioniert. Das einzige, was ich nicht richtig hinbekomme, ist das Ausleihformular. Die Leser bekommen eine Leserkarte mit einem Barcode, den piepse ich ab und der Lesername erscheint in einem Feld "Lesername". Wenn jetzt jemand 5 Bücher ausleihen will, klicke ich nach dem ersten Datensatz auf "Neuen Datensatz". Jetzt muss ich wieder die Leserkarte piepsen. Das muss ich dann natürlich bei 20 Büchern 20 mal machen. Kann man es nicht so hinbekommen, daß ich nur einmal die Lesernummer piepse, die Lesernummer dann stehenbleibt, dann piepse ich die 20 Bücher und sage "Neuer Datensatz" für den nächsten Leser.
Ich wäre echt dankbar, wenn jemand eine Idee hätte.
Viele Grüsse
Selket
stpimi
Moderator Access


Verfasst am:
30. Apr 2005, 07:58
Rufname:
Wohnort: Graz


AW: Bücherdatenbank - AW: Bücherdatenbank

Nach oben
       

Das hängt von Deiner Tabellenstruktur ab. Du brauchst hier eine Tabelle "Leser" und eine Tabelle "Verleih", die in einer 1:n-Beziehung stehen. Der Verleih wird dann über ein Unterformular im Hauptformular "Leser" dargestellt. Dann kannst Du einmal den Leser aufrufen und im Unterformular alle Bücher eintragen.

Falls Dein Datenmodell nicht so aussieht und nicht mehr umgebaut werden kann (was zu empfehlen wäre), dann kannst Du Dir eventuell noch per VBA helfen, indem Du jedesmal den Standardwert der Leser-Felder auf den Wert des vorigen Datensatzes setzt.
FAQ von Karl Donaubauer 4.22 Standardwert aus vorherigem Datensatz sagt dir, wie das geht.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
blicki
Es wird langsam besser...


Verfasst am:
30. Apr 2005, 18:20
Rufname: Martin
Wohnort: Meerbusch

Geht auch mit nem Makro... - Geht auch mit nem Makro...

Nach oben
       

Hallo das habe ich auch schon mal gebraucht.
Zuerst legst du ein Marko an, und benennst es z.B. "Wiederhole Wert".
In dem Makro wählst du -- Tastaturbefehle -- aus.

In dem unteren Feld -- Tastenfolge -- gibst du ^# ein.
Warten auf "nein" einstellen.

Diese Zeichen bedeuten soviel wie STRG-# gleichzeitig gedrückt. Quasi ein Hotkey der auch manuell funktioniert, kannst es ja mal vorher ausprobieren, damit es klar wird was ich meine.


Nun brauchst du nur noch in deinem gewünschten Feld welches du wiederholen möchtest, bei "Beim hingehen" dieses Makro "Wiederhole Wert" aufrufen.
Wenn das Formular dann geöffnet wird und sobald der Fokus auf das Feld fällt, schreibt sich der vorherige Wert als Vorschlag rein.

_________________
Gruß Martin
Ein paar gesammelte Werke habe ich in der Beispiele.mdb,die ihr auf meiner HP findet, zusammengefasst.
Selket
Im Profil kannst Du frei den Rang ändern


Verfasst am:
01. Mai 2005, 23:03
Rufname:
Wohnort: Niedersachsen

AW: Bücherdatenbank - AW: Bücherdatenbank

Nach oben
       

Hallo Blicki,
genau so hab ich mir das vorgestellt. Hab´s gleich ausprobiert und es funktioniert auch. Jetzt kommt aber das nächste Problem: Wenn ich vier Bücher hintereinander eingebe, speichert er jeweils nur den letzten Datensatz. Hast Du daür auch so eine tolle einfache Lösung?
@all: Danke für Eure Tips.
Gruss
Selket
blicki
Es wird langsam besser...


Verfasst am:
02. Mai 2005, 12:09
Rufname: Martin
Wohnort: Meerbusch


Ist schon komisch und auch ungewöhnlich... - Ist schon komisch und auch ungewöhnlich...

Nach oben
       

hallo, freut mich dass das mit den Vorschlagswerten funzt.
Ich vermute, dass du ein Problem mit den Beziehungen hast.
Kannst Du dir die Datensätze der Bücher in der Tabelle anzeigen lassen.
Nicht übers Formular, sondern direkt in der Tabelle.
Gibt es wirklich nur einen, oder zeigt er nur den letzten an?

Wenn es der Fall sein sollte, dass nur ein Datensatz gespeichert wird, versuche mal folgende Funktion.
Code:
    DoCmd.RunCommand acCmdSaveRecord

Diese setzt du bei "Bei Verlassen" in den Codes deines letzten Datensatzfeldes im Formular ein, wenn du das letzte Feld deines Bücherformulars verlässt, bevor du in den nächsten Datensatz springst.
Dann wird der Datensatz automatisch gespeichert.
Gib mal Laut, wenn es noch nicht funzt.

_________________
Gruß Martin
Ein paar gesammelte Werke habe ich in der Beispiele.mdb,die ihr auf meiner HP findet, zusammengefasst.
Selket
Im Profil kannst Du frei den Rang ändern


Verfasst am:
02. Mai 2005, 18:16
Rufname:
Wohnort: Niedersachsen

AW: Bücherdatenbank - AW: Bücherdatenbank

Nach oben
       

Hi Blicki,
funkioniert nicht. Ich hab am Ende des Formulars einen Button eingerichtet. "Nächsten Datensatz eingeben". In den Button hab ich das Makro "Gehe zu Buch-Nr." ("zurück" quasi, weil ich da ja immer wiede hin will) Wenn ich in diesen Button Deinen Befehl reinschreibe, sagt er, er kann das Makro nicht finden.
Ich habe in der Datenbank, eine Tabelle "Ausleihe" in der ich sehen kann, was er speichert. Daran sehe ich natürlich auch, daß er jeweils nur den letzten Datensatz speichert. An den Beziehungen kann es vielleicht auch liegen. Die Tabelle Bücher steht in Beziehung mit "Leser" und "Ausleihe".
Vielen Dank für Deine Tips
Gruss
Selket
blicki
Es wird langsam besser...


Verfasst am:
02. Mai 2005, 21:21
Rufname: Martin
Wohnort: Meerbusch

Du hast den Code als Makronamen eingegeben,dann kommt diese - Du hast den Code als Makronamen eingegeben,dann kommt diese

Nach oben
       

Meldung.
Wenn du auf die drei Punkte hinter dem Feld klickst, dann sollte ein Fenster aufgehen, dort wählst du dann Code aus und dort gibst du diese Zeile rein.
Wenn du nun in der Zeile beim Verlassen direkt diese Zeile reingeschrieben hast, dann geht da natürlich nicht, weil Access versucht ein Makro mit diesem Namen zu finden. In dem Fall wählst du Ereignisprozedur aus, und klickst dann auf die drei Punkte hinter dem Feld.
Dann geht auch ein Editor auf, in den du dann diese Zeile reinschreiben kannst.
Aber ich glaube du hast eher ein Problem mit den Beziehungen.
Die Personentabelle sollte dabei eine 1 Tabelle von einer 1:n Beziehung sein.
Da eine Person wie du auch sagst mehrere Bücher ausleihen kann, muß die Büchertabelle auf der N Seite stehen. Schau mal in den Beziehungen nach ob dort eine 1:Unendlich (liegende 8) Beziehung besteht.
Wenn du eine 1:1 Beziehung hast, must du für jedes Buch den Kunden neu anlegen, das ist weniger Vorteilhaft. Bei einer 1:n Beziehung sollte, aber muss man nicht auch eine Aktualisierungs und Löschweitergabe anklicken. D.H. dann, wenn der Kunde stirbt (oder umzieht), brauchst du dann auch keine Verwaltung mehr was er sich in der Vergangenheit mal ausgeliehen hat. Dann löschst du nur den Kunden und die verwandten Datensätze in der Büchertabelle werden mitgelöscht (oder geändert).

_________________
Gruß Martin
Ein paar gesammelte Werke habe ich in der Beispiele.mdb,die ihr auf meiner HP findet, zusammengefasst.
Selket
Im Profil kannst Du frei den Rang ändern


Verfasst am:
03. Mai 2005, 18:40
Rufname:
Wohnort: Niedersachsen

AW: Bücherdatenbank - AW: Bücherdatenbank

Nach oben
       

hi Blicki,
ich glaube mittlerweile auch, daß es an den Beziehungen liegt. Sind aber alles 1:n Beziehungen. Zwischen Bücher und Ausleihe habe ich eine Beziehung mit referentieller Integrität. Zwischen Ausleihe und Leser besteht zwar eine Beziehung, aber wenn ich "referentielle Integrität" anhake, sagt er in der Tabelle Ausleihe gibt es Daten, die gegen die Regeln für referentielle Integrität verstossen. Keine Ahnung, wie ich das jetzt noch ändern soll. Hab auch schon gedacht, daß es vielleicht an den Indizies liegt. Hab das alles in den Tabellen raugenommen, die Beziehung kann ich trotzdem nicht herstellen. Blöder Kram. Evil or Very Mad
Gruss
Selket
blicki
Es wird langsam besser...


Verfasst am:
04. Mai 2005, 09:27
Rufname: Martin
Wohnort: Meerbusch

AW: Bücherdatenbank - AW: Bücherdatenbank

Nach oben
       

Schreib doch mal auf welche Felder in deinen Tabellen wie miteinander verknüpft sind, und welche Schlüssel miteinander verknüpft sind.
Ich habe noch nicht verstanden, was die Tabelle "Ausleihe" beinhalten soll.
"Bücher" scheint mir einzuleuchten, das sind eben die entliehenen Bücher. Oder sind die Bücher in einer Tabelle, und in noch einer Tabelle soll die Bücher ID als entliehen gespeichert werden?

Ich würde die Datenbank so anlegen: Master sind die Kunden, die in einer 1 Tabelle stehen. Die hat einen Primärschlüssel. Die Tabelle Bücher (n Tabelle) hat eine ID mit der die Bücher an den Kunden verknüpft werden.

Nun würde ich in einem Hauptformular die Kundendaten anzeigen lassen, und über ein Unterformular die entliehenen Bücher. Dieses Unterformular kann ja ein Endlosformular sein.
Ich gehe davon aus, dass du deine Bücher in einer Tabelle aufgelistet hast, die du dabei zugrundelegen möchtest.
Für das Unterformular, solltest du dann eine separate Abfrage machen.
Ansonsten kann ich mich nur dem obigen Beitrag von stpimi anschließen.

_________________
Gruß Martin
Ein paar gesammelte Werke habe ich in der Beispiele.mdb,die ihr auf meiner HP findet, zusammengefasst.
Selket
Im Profil kannst Du frei den Rang ändern


Verfasst am:
04. Mai 2005, 19:52
Rufname:
Wohnort: Niedersachsen


AW: Bücherdatenbank - AW: Bücherdatenbank

Nach oben
       

Hallo Blicki,
habe jemanden gefunden, der sich die Datenbank mal angucken konnte. Das hier:
Code:
Private Sub Neuen_Datensatz_einfügen_Buchausleihe_Click()
On Error GoTo Err_Neuen_Datensatz_einfügen_Buchausleihe_Click
Dim var_leser_nr    As String

    If IsNull(Forms![Buchausleihe].[Leser-Nr]) = False Then
        var_leser_nr = Forms![Buchausleihe].[Leser-Nr]
    End If
    DoCmd.GoToRecord , , acNewRec
    Forms![Buchausleihe].[Leser-Nr] = var_leser_nr
   
Exit_Neuen_Datensatz_einfügen_Buchauslei:
    Exit Sub
Err_Neuen_Datensatz_einfügen_Buchausleihe_Click:
    MsgBox Err.Description
    Resume Exit_Neuen_Datensatz_einfügen_Buchauslei
End Sub
war die Lösung.
Vielen Dank nochmal für Deine Mühe. Den anderen natürlich auch.
Liebe Grüsse
Selket
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum 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 nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: bücherdatenbank in access (anfänger!!) 12 ann-ky 4194 01. Aug 2009, 20:06
tk6 bücherdatenbank in access (anfänger!!)
Keine neuen Beiträge Access Hilfe: Suche Bücherdatenbank 6 draki 7432 12. Nov 2005, 20:34
borstel Suche Bücherdatenbank
Keine neuen Beiträge Access Tabellen & Abfragen: Bücherdatenbank erstellen 1 Annabella74_ 5890 12. Nov 2005, 16:08
iso Bücherdatenbank erstellen
Keine neuen Beiträge Access Tabellen & Abfragen: Bücherdatenbank zu kompliziert? 3 Selket 1086 05. Feb 2004, 09:31
Gast Bücherdatenbank zu kompliziert?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Forum