Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Bei RecordsGoToNew doppelte Datensätze
zurück: Selektion von Kombinationsfeld zurücksetzen weiter: daten in einem unterformular anfügen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Muli
Anfänger


Verfasst am:
21. Dez 2011, 20:37
Rufname: Holger
Wohnort: Hochsauerland

Bei RecordsGoToNew doppelte Datensätze - Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Moin, moin,
ich benötige nochmals die Unterstützung des Forums.

Über einen Button und DoCmd.RunCommand acCmdRecordsGoToNew lege ich einen neuen Datensatz an. Hier lasse ich dann automatisch das heute Datum und die Rechnungsnummer in die dafür vorgesehenen Feldern erstellen.
Es erstellt sich aber bei jedem klick ein zweiter Datensatz mit neuem Autowert aber ohne die oben beschrieben automatich zu füllen Felder von Datum und Rechnungsnummer.
Dieser wird sogar vor dem eigentlichen Datensatz erstellt.

Hat jemand eine Idee was da schief läuft?
Gruß Holli

_________________
Gruß Holger
Ein Kluger Mann findet immer Zeit für Dummheiten
MiLie
kein Office- VBA- Programmierer


Verfasst am:
21. Dez 2011, 20:59
Rufname: Micha
Wohnort: Chemnitz


AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Hallo,

liebe Glaskugel, lasse mir seinen Code hinter den Button sehen. simsallabim.

wenns nicht klappt kann jeder trotzdem sehen was an seinem Code falsch läuft, geht alles über Internet so von hinten in den Monitor rein Laughing Laughing Laughing Laughing

gegenfrage: mein Auto fährt nicht richtig, was mache ich falsch?

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Muli
Anfänger


Verfasst am:
21. Dez 2011, 21:05
Rufname: Holger
Wohnort: Hochsauerland

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Sorry,
Code:
Private Sub cmdNeueRechnung_Click()
On Error GoTo Err_Fehler
    'Neue Rechnung anlegen
    NeuerDs    'Sub Aufruf aus Modul "Navigation" zum Anlegen eines neuen Datensatzes
    'also so:  DoCmd.RunCommand acCmdRecordsGoToNew
    Me!Datum.SetFocus
    Me!Datum.Text = Date
    Me!Rechnungsnummer.SetFocus
    Me!Rechnungsnummer.Text = Me!idRechnung.Value & Format(Date, "yyyy")
    'Damit die neue Rechnungsnummer gleich im Listenfeld angezeigt wird
    Me!lstRechnungsnummern.Requery
Exit_Fehler:
    Exit Sub
Err_Fehler:
    MsgBox Err.Description
    Resume Exit_Fehler
End Sub
In der Tabelle "Rechnungen" sieht das dann so aus

Id_______l_kunde______RechnungsNr_____Datum
147_______122
148_______122__________1482011_____21.12.2011

Danke schon mal für die Mühe
Holli

_________________
Gruß Holger
Ein Kluger Mann findet immer Zeit für Dummheiten
MiLie
kein Office- VBA- Programmierer


Verfasst am:
21. Dez 2011, 21:48
Rufname: Micha
Wohnort: Chemnitz

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Hallo,

ich sehe jetzt nichts wobei mir die Constante jetzt nichts sagt ( scheint es bei 2003 nicht zu geben) und was wird in der Sub genau gemacht
teste mal:
Code:
Private Sub cmdNeueRechnung_Click()
On Error GoTo Err_Fehler
    'Neue Rechnung anlegen
    DoCmd.GoToRecord , , acNewRec
    Me!Datum = Date 
    Me!Rechnungsnummer = Me!idRechnung.Value & Format(Date, "yyyy")
    'Damit die neue Rechnungsnummer gleich im Listenfeld angezeigt wird
    Me!lstRechnungsnummern.Requery
Exit_Fehler:
    Exit Sub
Err_Fehler:
    MsgBox Err.Description
    Resume Exit_Fehler
End Sub
(habe dabei gleich die unnützen setfocus rausgrnommen.
_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Muli
Anfänger


Verfasst am:
21. Dez 2011, 22:13
Rufname: Holger
Wohnort: Hochsauerland


AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Das ist keine Constante sondern eine selbst erstellte Public Prozedur die "NeuerDS" heißt um mir Schreibarbeit zu ersparen.

Mit GoToRecord funktioniert es.

Ich frage mich aber warum es mit der DoCmd.RunCommand-Methode nicht klappt.
eigentlich doch zum anlegen neuer DS das Mittel der Wahl oder?

Holli

_________________
Gruß Holger
Ein Kluger Mann findet immer Zeit für Dummheiten
MiLie
kein Office- VBA- Programmierer


Verfasst am:
21. Dez 2011, 22:55
Rufname: Micha
Wohnort: Chemnitz

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

allo,

ich meinte mit der Konstante acCmdRecordsGoToNew habe sie aber zwischenzeitlich gefunden. Was steht den noch in der Prozedur?

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Muli
Anfänger


Verfasst am:
07. Jan 2012, 19:22
Rufname: Holger
Wohnort: Hochsauerland

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Hallo User,
leider muss ich das Thema nochmal aufgreifen. Langsam bekomme ich das pure verzweifeln.
Der Fehler besteht doch weiterhin. Einige male hat das Anlegen neuer Rechnungen gut geklappt. Nun bekomme ich wieder zwei Rechnungen auf den Kunden angelegt. Ich habe aber am Code nicht verändert.

Hat noch jemand eine Idee?

Gruß Holli

_________________
Gruß Holger
Ein Kluger Mann findet immer Zeit für Dummheiten
MiLie
kein Office- VBA- Programmierer


Verfasst am:
07. Jan 2012, 20:39
Rufname: Micha
Wohnort: Chemnitz

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Hallo,

hast du Mehrbenutzer in deiner DB

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Gast



Verfasst am:
07. Jan 2012, 20:45
Rufname:

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Ja, aber die Datenbank ist noch nicht im Netz ( FE - BE). Ich bau sie gerade auf und da pfuscht mir keiner zwischen.
Ich habe auch schon den Button neu angelegt, ohne Erfolg.
MiLie
kein Office- VBA- Programmierer


Verfasst am:
07. Jan 2012, 21:27
Rufname: Micha
Wohnort: Chemnitz

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Hallo,

lade mal eine >Beispiel-DB hoch.
Ungeachtet davon benötigst du das ganze garnicht, da deine Rechnungsnummer immer die Zusammensetzung ID und Rechnungsdatum ist.

Setze überall, wo du die Rechnungsnummer benötigst diese Zusammensetzung ein und das wars, da benötigst du nicht einmal ein Feld für die Rechnungnummer und dein Fehler passiert definitiv nicht.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Gast



Verfasst am:
07. Jan 2012, 22:15
Rufname:

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Ich glaube das ist ungünstig da ich in mehreren Listenfeldern die Rechnungsnummern der einzelnen Rechnungen anzeigen lasse um darüber Datensätze aufzurufen.

Meinst du der Fehler ist in der Zusammensetzung der Rechnungsnummer zu suchen?

Reicht Dir denn das FE der Anwendung? (Ich glaube das muss ich auch erst noch beantragen, da ich in meiner Oberfläche kein Attachmentbutton finde)

Gruß Holli
MiLie
kein Office- VBA- Programmierer


Verfasst am:
08. Jan 2012, 01:18
Rufname: Micha
Wohnort: Chemnitz

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

hallo,

FE reicht, wenn es wirklich nur eine Tabelle ist, die ist schnell nachgestellt.

ungeachtet bleibe ich aber der Meinung, dass dies nicht notwendig ist.

du kannst RN immer und überall zusammensetzen, auch in Abfragen für Listenfelder
Code:
SELECT IDFeld & Datum AS Rechnungsnummer, *
FROM   Tabelle.
alle anderen Verknüpfungen und Abhängigkeiten sollten nur über das ID-Feld gehen. Lediglich Suchformulare filtern auf die Rechnungsnummer und das geht auch
Code:
SELECT *
FROM   Tabelle
WHERE  IDRechnung & Datum = [bitte Rechnungsnummer eingeben]♦♠
Da du die ID numal dabei hast, kannst du sie auch so nutzen. Ich selbst empfehle immer völlig losgelöst von ID-Feldern kundenspezifische Nummern selbst hochzuzählen. Ich denke ID-Felder sind ausschließlich zur Datensatzidentifikation ( Schlüsselfelder) und für die Beziehungen da. Der Anwender sieht in meinen Dadenbanken nirgends ein Schlüsselfeld oder Fremdschlüsselfeld. Der weiß gar nicht, dass alle Tabellen soetwas haben.
_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Muli
Anfänger


Verfasst am:
08. Jan 2012, 11:17
Rufname: Holger
Wohnort: Hochsauerland

AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Im Prinzip hast du Recht. Aber was ist mit Rechnungen aus vergangen Jahren. Ist der Aufwand nicht zu groß, dass Rechnungsdatum auseinander zu nehmen (ich brauche ja nur die Jahreszahl) um damit die Rechnungsnummern zu erstellen?

Es muss doch eine Möglichkeit geben die Rechnungsnummer direkt zu erstellen ohne das zwei Datensätze angelegt werden.

Das Hochzählen werde ich im laufe des Tages mal testen. Jedoch kann ich mir keinen Reim darauf machen warum es dann funktionieren sollte.

Den Upload kann ich erst nach Bestätigung machen. Darauf warte ich noch.

Gruß Holli

_________________
Gruß Holger
Ein Kluger Mann findet immer Zeit für Dummheiten
MiLie
kein Office- VBA- Programmierer


Verfasst am:
08. Jan 2012, 13:03
Rufname: Micha
Wohnort: Chemnitz

Re: AW: Bei RecordsGoToNew doppelte Datensätze - Re: AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Hallo,
Muli - 08. Jan 2012, 10:17 hat folgendes geschrieben:
Im Prinzip hast du Recht. Aber was ist mit Rechnungen aus vergangen Jahren. Ist der Aufwand nicht zu groß, dass Rechnungsdatum auseinander zu nehmen (ich brauche ja nur die Jahreszahl) um damit die Rechnungsnummern zu erstellen?
Wenn du schon immer nach dem Prinzip gearbeitet hast sollte es kein Problem sein. Du musst lediglich das Feld Rechnungsnummer aus der Tabelle löschen ( als Sicherheit kannst du es ja vorerst umbenennen). dann erstellst du eine Abfrage. Wenn du nur das Jahr aus dem Rechnungsdatum verwendest sollte die Abfrage in etwas so aussehen
Code:
SELECT *, IDRechnung & year(Datum) AS Rechnungsnummer
FROM   Rechnungstabelle
jetzt musst du in allen Formularen, Berichten und Abfragen die Rechnungstabelle durch deine Abfrage ersetzen. Mit einen Trick könnte klappen, dass du die Rechnungstabelle umbenennst und die neue Abfrage so benennst, wie vorher die Rechnungstabelle hieß, dann könnte es sogar sein, dass du in den anderen Abfragen Formularen und Berichten garnichts machen brauchst.

wenn du die Rechnungsnummer zukünftig selbst hochzählen willst (was ich machen würde) bleibt natürlich dein Rechnungsnummernfeld in der Tabelle und du musst nur die Art des Hochzählens ändern. Ich würde dabei sogar pro Jahr wieder bei 1 anfangen, also erste Rechnung in 2012 z.B. 00012012, im Jahr hochgezählt und erste Rechnung in 2013 wieder 00012013. Wie die Rechnungsnummer aussehen soll mußt du natürlich entscheiden. Ich würde auch die Zeichenanzahl fest machen, also z.B. mit Vornullen. ob 4-Stellig und Jahreszahl oder 5-Stellig und Jahreszahl musst du entscheiden, wie viele Rechnung du im Jahr erwartest. Dabei sollte man sehr großzügig entscheiden.

Bei Mehrbenutzer (Netzwerk) musst du aber beachten dass vor dem Speichern (Vor Aktualisieren-Ereignis des Forms) des Datensatzes die Rechnungnummer erzeugt wird, sonst kann es bei gleichzeitigen anlegen von Datensätzen zu doppelten Rechnungsnummern kommen. Ich erzeuge sie in meinen Datenbanken beim gehen in den neuen Datensatz, so dass der Nutzer schonmal eine neue Nummer sieht und wenn der Datensatz gespeichert wird nocheinmal, sollte in der gleichen Zeit ein anderer Nutzer auch in einen neuen Datensatz gegangen sein wird die Rechnungsnummer nochmal angepasst, je nachdem welcher Nutzer schneller gespeichert hat. Das zeige ich aber dem Nutzer in einer MSGBox an. Praktisch passiert es zwar fast nie, aber man kann es ja mit zwei Arbeitsplätzen provozieren und damit testen.
Nachtrag: MiLie am 08. Jan 2012 um 12:25 hat folgendes geschrieben:
Hallo,

was noch anzumerken wäre,

eigentlich sollte jede kleinste in sich abgeschlossene Informationseinheit in eigenen Feldern gespeichert werden. Informationen die sich aus solchen Zusammensetzen sollten erst bei der Anzeige (Formulare oder Berichte zusammengesetzt werden. Deine Rechnungsnummer besteht genau genommen aus zwei Informationseinheiten. Einmal der Zähler ( dabei egal ob dazu die ID genommen wird oder selbst hochgezählt wird) und einmal die Jahreszahl. Nimmst du die ID wären wir wieder da was ich geschrieben hatte. Zählst du selbst hoch, sollte der Zähler in ein eigenes Feld ohne Jahreszahl.
Die Jahreszahl brauchst du nicht extra speichern, da diese schon im Rechnungsdatum enthalten ist, diese kannst du ja verwenden, weil doppelt speichern sollte man auch vermeiden.
Du siehst man könnte alleine bei diesen Thema fast eine Abhandlung schreiben.
Daher bleibt A*'s Grundsatz Zitat:
Zitat:
1. Gebot: Du sollst lange und gründlich über Dein Datenmodell nachdenken!
2. Gebot: Du sollst keine Formulare erstellen ohne gutes Datenmodell!

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Muli
Anfänger


Verfasst am:
10. Jan 2012, 20:35
Rufname: Holger
Wohnort: Hochsauerland


AW: Bei RecordsGoToNew doppelte Datensätze - AW: Bei RecordsGoToNew doppelte Datensätze

Nach oben
       Version: Office 2007

Ich lasse nun die Rechnungsnummer in einen separaten Feld hochzählen. Im Standardwert dieses Feldes habe ich
Code:
=Nz(DomMax("ZaehlerFeld";"Tabellenname");0)+1
eingetragen.
Nachdem das Datum und die Rechnungsnummer zugewiesen wurde wird alles gespeichert. Hier scheint der Fehler gelegen zu haben.

Erst danach kommen irgendwelche Aktualisierungen.
Hier nochmal komplett:
Code:
On Error GoTo Err_Fehler
        'Neue Rechnung anlegen
        DoCmd.RunCommand acCmdRecordsGoToNew
        'Datum und Rechnungsnummer erzeugen
        With Me
            !Datum = Date
            !Rechnungsnummer = Me!Zaehler & Format(Date, "yyyy")
        End With
        'Speichern
        DoCmd.RunCommand acCmdSaveRecord
        'Damit die neue Rechnungsnummer gleich im Listenfeld angezeigt wird
        Me!lstRechnungsnummern.Requery
Exit_Fehler:
    Exit Sub
Err_Fehler:
    MsgBox Err.Description
    Resume Exit_Fehler

Gruß Holli

_________________
Gruß Holger
Ein Kluger Mann findet immer Zeit für Dummheiten
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 Tabellen & Abfragen: Filtere alle Datensätze ab der 3 Stelle die nicht PC heißen? 7 centerguide 1302 18. Mai 2005, 11:39
centerguide Filtere alle Datensätze ab der 3 Stelle die nicht PC heißen?
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze löschen per Makro 1 joule 4792 17. Mai 2005, 13:23
jens05 Datensätze löschen per Makro
Keine neuen Beiträge Access Tabellen & Abfragen: Anzahl der Datensätze zählen (im Formular oder Bericht) ? 3 anna-bolika 3756 31. März 2005, 12:50
Dalmatinchen Anzahl der Datensätze zählen (im Formular oder Bericht) ?
Keine neuen Beiträge Access Tabellen & Abfragen: Auffinden unterschiedlicher Datensätze in zwei Sichten 2 oceanhawk 618 18. März 2005, 10:19
oceanhawk Auffinden unterschiedlicher Datensätze in zwei Sichten
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze vergleichen 4 Gast 1247 04. März 2005, 15:29
Willi Wipp Datensätze vergleichen
Keine neuen Beiträge Access Tabellen & Abfragen: Doppelte Einträge in Abfrage 1 manu_ 694 17. Feb 2005, 12:27
Gast Doppelte Einträge in Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze hinzufügen bei m:n Beziehung 13 Th.Fi 1036 10. Feb 2005, 13:27
Willi Wipp Datensätze hinzufügen bei m:n Beziehung
Keine neuen Beiträge Access Tabellen & Abfragen: "Ist Null" findet nicht alle Datensätze 2 HenningR 718 07. Feb 2005, 14:05
HenningR "Ist Null" findet nicht alle Datensätze
Keine neuen Beiträge Access Tabellen & Abfragen: multiplizieren zweier verschiedener Datensätze 3 Stara 913 13. Jan 2005, 20:36
Skogafoss multiplizieren zweier verschiedener Datensätze
Keine neuen Beiträge Access Tabellen & Abfragen: doppelte ID's nicht anzeigen 2 Andreas24 614 13. Jan 2005, 09:18
Andreas24 doppelte ID's nicht anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: Anfügeabfrage für neue Datensätze 2 Gast 938 06. Jan 2005, 15:52
Gast Anfügeabfrage für neue Datensätze
Keine neuen Beiträge Access Tabellen & Abfragen: leeres Abfrage Textfeld wirft alle Datensätze aus :( 4 neo-helix 1028 22. Dez 2004, 16:35
neo-helix leeres Abfrage Textfeld wirft alle Datensätze aus :(
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen