Hallo,
ich bin grad dabei eine Datenbank zu erstellen.
Ich habe zwei Formulare. Einmal Kunde und einmal Anfrage.
Kunde: KundenID, Firma, Ort, Ansprechpartner, usw.
Anfrage: Vorgangsnummer, KundenID, Firma, Ansprechpartner, Datum usw.
Ich möchte von meinem Formular Kunde in dem ich auf ein Button klicke oder auf z.B. Kunden ID klicke auf mein Formular Anfrage kommen. Dabei soll es mir die Daten die im Formular Kunde bereits eingegeben worden sind in das Formular Anfrage übernommen werden. Das bedeutet die KundenID von Kunde soll durch das "springen" auf das Formular Anfrage die "KundenID" übernehmen.
Ich bin noch ein Anfänger und weiß noch nicht wie ich damit umgehen soll.
ich habe bis jetzt diesen Code eingefügt:
Private Sub KundenID_DblClick(Cancel As Integer)
Forms!fmlAnfrage.KundenID = Me.KundenID
DoCmd.OpenForm "fmlAnfrage", , , "KundenID =" & Me!KundenID & ""
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenForm "fmlAnfrage", , , "KundenID =" & Me!KundenID & ""
DoCmd.GoToRecord acDataForm, "fmlAnfrage", acNewRec
Forms!fmlAnfrage.KundenID = Me.KundenID
DoCmd.RunCommand acCmdSaveRecord
End Sub
er öffnet das Formular übernimmt die KundenID auch aber z.B. Ansprechpartner und Firma werden nicht übernommen
Vielen Dank im Voraus!
LG naz
Hallo,
Zitatauch aber z.B. Ansprechpartner und Firma werden nicht übernommen
das ist auch völlig überflüssig. Die KundenID reicht. Die anderen Felder aus der Kundentabelle werden über Abfragen dargestellt. Das ist ja der Sinn einer ID (Primärschlüssel-Fremdschlüssel), redundante Daten zu vermeiden.
Und wenn Du das Ganze noch mit einem Hauptformular (Kundendaten) und einem über die Schlüsselfelder verknüpften Unterformular machst, geht das alles automatisch, ohne einen Buchstaben VBA.
Hat eine Firma nur ein Ansprechpartner ?
Hey danke für deine schnelle Antwort!
Ja stimmt.. hast recht!
Hat eine Firma nur ein Ansprechpartner ?
[/quote]
Nein es sind zwei Ansprechpartner aber das kommt in den anderen Tabellen vor.
Also die Datenbank muss so aufgebaut werden.
Ich habe Kunden dann kommt eine Anfrage rein. Wenn die Anfrage reinkommt klicke ich auf den Kunden und dann die Person die fehlenden Felder eintragen z.B. Datum usw. Dann wenn die Anfrage ausgefüllt ist, dann muss ein Angebot erstellt werden. Diesen Angebot erstellt sie zwar separat gibt aber in der Datenbank die Angebotsnummer, wieder die KundenID und Datum ein.
Und dann kommt der nächste Reiter usw.
Deswegen hab ich mir gedacht ok wenn ich auf die KundenID klicke dann soll Anfrage geöffnet werden und von der Anfrage an fängt der Prozess an. Also ich mach dann ein Pfeil in das Formular Anfrage rein und wenn ich drauf klicke bin ich auf meinem Formular Angebot und kann das dann ausfüllen.
Is das zu sehr umständlich??
Könnte man es anders machen??
Das Ziel ist es eigtl. dass ich dann am schluss eine Übersicht habe was alles erledigt wurde und was noch offen ist.
LG Naz
Hallo,
ZitatKönnte man es anders machen??
habe ich Dir doch schon geschrieben:
ZitatUnd wenn Du das Ganze noch mit einem Hauptformular (Kundendaten) und einem über die Schlüsselfelder verknüpften Unterformular machst, ....
Zeige mal ein Bild des Beziehungsfensters. Ich fürchte, da liegt noch einiges im Argen.
Das sind die Tabellen mit Ihren Beziehungen.
Hallo,
da gibt es einige Ungereimtheiten.
- Firma und Ansprechparten in tblAnfrgae überflüssig
- Was macht die Tabelle Bestellprüfung, gibt es zu einem Bestellungseingang tatsächlich mehrere Prüfungen ?
- Wieso wurde die Tabelle Bestellprüfung 2x verendet ?
- Ebenso die Tabelle tblLeistungserbringung
- Die KundenID in der Tabelle tblSAPAuftrag ist überflüssig. Den Bezug zum Kunden ergibt sich bereit über die Bestellung
- Die Tabelle tblRechnung hat keine Beziehung zum Kunden.
- Du solltest in Feld und Objektnamen grundsätzlich keine Leer und Sonderzeichen verwenden.
"Monatsabschluss Rechnung erstellt und versand" u. andere sind eine Katastrophe, spätestens wenn Du solche Feldnamen in VBA, SQL oder als Formel schreiben musst, wirst Du das noch heftig bedauern. Abgesehen davon müssen um solche Namen immer ein [] Klammerpaar.
Zitat von: MzKlMu am Mai 19, 2016, 11:51:54
Hallo,
da gibt es einige Ungereimtheiten.
- Firma und Ansprechparten in tblAnfrgae überflüssig
ZitatJa stimmt, aber die in dieser Abteilung möchten das gerne so haben, deshalb muss ich es drin lassen
- Was macht die Tabelle Bestellprüfung, gibt es zu einem Bestellungseingang tatsächlich mehrere Prüfungen ?
ZitatDie Tabelle Bestellprüfung prüft die Bestellungen die eingegangen sind. Stimmt ich tu eine Bestellung nur einmal prüfen... also hab ich eine 1:1 Beziehung?
- Wieso wurde die Tabelle Bestellprüfung 2x verendet ?
- Ebenso die Tabelle tblLeistungserbringung
ZitatDas war ein Fehler von mir ...
- Die KundenID in der Tabelle tblSAPAuftrag ist überflüssig. Den Bezug zum Kunden ergibt sich bereit über die Bestellung
ZitatOk..
- Die Tabelle tblRechnung hat keine Beziehung zum Kunden.
Zitatsoll dann bei der tbl Rechnung auch die KundenID rein?
- Du solltest in Feld und Objektnamen grundsätzlich keine Leer und Sonderzeichen verwenden.
ZitatOk..das tue ich ändern
"Monatsabschluss Rechnung erstellt und versand" u. andere sind eine Katastrophe, spätestens wenn Du solche Feldnamen in VBA, SQL oder als Formel schreiben musst, wirst Du das noch heftig bedauern. Abgesehen davon müssen um solche Namen immer ein [] Klammerpaar.
Zitatja ich weiß aber die in der Abteilung möchten das so ... das ist bei mir ein Feld mit Ja/Nein
also bei der Tabelle Bestellprüfung geht es nur darum ob es enthalten ist oder nicht...also Ja/Nein
Ich habe bereits die Anfrage als Unterformular hinzugefügt und das klappt bestens dankeschön.
Jetzt muss ich ja von der Anfrage zum Angebot. Und sie möchte nicht dass ich alles als Unterformulare habe... Kann ich dann z.B. durch ein Button auf das Formular Angebot springen und hier ebenfalls die Daten mit übernehmen?? also die KundenID
Hi,
ZitatJa stimmt, aber die in dieser Abteilung möchten das gerne so haben, deshalb muss ich es drin lassen
Du kannst die Daten im Formular mit der Anfrage ja auch
anzeigen, indem du sie aus der Kundentabelle hinzuholst.
Die doppelte Speicherung sollte aber unbedingt vermieden werden - es sei denn, es gibt gute Gründe dafür.
Zitat- Die Tabelle tblRechnung hat keine Beziehung zum Kunden.Zitatsoll dann bei der tbl Rechnung auch die KundenID rein?
Die Rechnung bezieht sich auf einen Auftrag und der Auftrag enthält den Kunden, also ist der Kunde in der Rechnungstabelle überflüssig.
Zitataber die in der Abteilung möchten das so
Die Namen der Datenfelder gehen niemanden etwas an. Was nach außen sichtbar wird, ist eine andere Sache, die Tabellen darf sowieso niemand direkt ansehen. Wenn du Gebrauch machst von der Beschriftungseigenschaft bei den Tabellenfeldern, wird diese bei Erstellung von Formularen und Berichten für die Bezeichnungsfelder verwendet.
okay vielen Dank für deine Antwort...
Werde ich alles abändern :)
sobald ich die Beziehungen geändert habe könnte ich sie dir nochmal zeigen ob es stimmt?
LG Naz
Hallo,
ZitatJa stimmt, aber die in dieser Abteilung möchten das gerne so haben, deshalb muss ich es drin lassen
redes es denen aus, die müssen das ja auch gar nicht sehen. Du handelst Dir nur potentielle Fehlerquellen ein. Wenn die Daten über eine Abfrage mit beiden Tabellen dargestellt werden, sieht niemand mehr wo die Felder herkommen.
ZitatStimmt ich tu eine Bestellung nur einmal prüfen... also hab ich eine 1:1 Beziehung?
wenn es nur eine Bestellprüfung zu einer Bestellung gibt, so ist diese Tabelle überflüssig, deren Felder gehören in die Tabelle Bestellung. Und in diese Tabelle muss dann die KundenID als Fremdschlüssel zum Kunden (und natürlich auch die Beziehungslinie).
ja ich weiß aber die in der Abteilung möchten das so. Was auf dem Formular als Bezeichnung steht kann ganz anders sein als das Tabellenfeld.
"MoAbschlErstVersa" als Feldname und "Monatsabschluss Rechnung erstellt und versand" als Bezeichnungsfeld und schon ist beiden genüge getan.
ZitatKann ich dann z.B. durch ein Button auf das Formular Angebot springen und hier ebenfalls die Daten mit übernehmen?? also die KundenID
Ja, das geht.
Aber trotzdem solltest Du über Unterformulare nachdenken. Ich glaube sie (wer immer das ist) wissen nicht um deren Möglichkeiten.
Man kann die Unterformulare in Registern anordnen (Register1: Anfragen, Register2: Angebote) und hat so zu einem Kunden dessen komplette Übersicht in einem Formular sehr komfortabel und übersichtlich.
Um fasst eigentlich ein Angebot immer nur eine Position (Artikel) ?
Mehr geht nämlich nicht bei Deinem Datenmodell ?
Und ich habe schon mal gefragt, gibt es zu einer Firma nur einen Ansprechpartner ?
Bei deinem Datenmodell kann es nicht mehr geben.
PS:
Bitte achte darauf, dass nicht ganze Beiträge als Zitat markiert sind.
sorry das ich immer Zitate gemacht habe :-\
Zitatredes es denen aus, die müssen das ja auch gar nicht sehen. Du handelst Dir nur potentielle Fehlerquellen ein. Wenn die Daten über eine Abfrage mit beiden Tabellen dargestellt werden, sieht niemand mehr wo die Felder herkommen.
okey das mach ich :)
Zitatwenn es nur eine Bestellprüfung zu einer Bestellung gibt, so ist diese Tabelle überflüssig, deren Felder gehören in die Tabelle Bestellung. Und in diese Tabelle muss dann die KundenID als Fremdschlüssel zum Kunden (und natürlich auch die Beziehungslinie).
ja hast recht...ich muss es mal mit ihr bereden..aber ich denke das ist in Ordnung.
ZitatJa, das geht.
Aber trotzdem solltest Du über Unterformulare nachdenken. Ich glaube sie (wer immer das ist) wissen nicht um deren Möglichkeiten.
Man kann die Unterformulare in Registern anordnen (Register1: Anfragen, Register2: Angebote) und hat so zu einem Kunden dessen komplette Übersicht in einem Formular sehr komfortabel und übersichtlich
stimmt ich finde Unterformulare auch besser...ich werde das auch nochmal mit ihr besprechen. Über Register hatte ich mir noch keine Gedanken gemacht danke für die Info!!
ZitatUm fasst eigentlich ein Angebot immer nur eine Position (Artikel) ?
Mehr geht nämlich nicht bei Deinem Datenmodell ?
also die Artikel werden gar nicht in dieser Datenbank angelegt. Sie will nur in der Datenbank speichern, dass sie ein Angebot erstellt hat mit folgenden Infos und verschickt hat...aber welche Artikel usw. das will sie nicht haben
ZitatUnd ich habe schon mal gefragt, gibt es zu einer Firma nur einen Ansprechpartner ?
Bei deinem Datenmodell kann es nicht mehr geben.
emm Ansprechpartner haben wir die externen Kunden und bei der Leistungserbringung aber auch die internen Mitarbeiter.
Danke danke wirklich bin mit meinen Gedanken echt viel weiter gekommen!!
Hallo,
Zitatemm Ansprechpartner haben wir die externen Kunden und bei der Leistungserbringung aber auch die internen Mitarbeiter.
das beantwortet nicht meine Frage.
Ich wollte wissen, ob es zu
einer Firma nur einen Ansprechpartner geben kann. Üblicherweise gibt es da ja mehrere.
ahsoo ja klar es gibt mehrere Ansprechpartner...
Hallo,
hab jetzt die Beziehungen und Tabellen geändert.
Ist das so in Ordnung??
LG Naz
Sorry, aber die Beziehungen sind eine Katastrophe, da ist ja kaum eine (wenn überhaupt) richtig angelegt.
hä wieso denn??
ich check das nicht so ganz
Ein Kunde kann doch mehrere Anfragen haben
bei der nächsten war ich mir sowieso unsicher
Ein Angebot kann nur eine Bestellnummer haben
Eine Bestellnummer hat nur eine Bestellbestätigungsnummer
Ein SAP-Auftrag hat eine Rechnung und eine Leistungserbringung
was mache ich falsch??
ohman könnt ihr mir bitte helfen???
sind zumindest die Tabellen jetzt richtig
Hallo nazo,
Zitatsind zumindest die Tabellen jetzt richtig
Nicht ganz, komisch dass noch keiner was dazu gesagt hat; - die
Nachschlagefelder gehören da raus. Deren Daten müssen in extra
Tabellen; - nachgeschlagen wird dann auf den Formularen.
gruss ekkehard
Hey danke für deine Antwort Ekkehard!
also einfach die nachschlagefelder raus und dann wenn ich ein formular erstelle mit einem Kombinationsfeld dort in dem formular erstellen??
LG Nazo
Hallo,
Hallo,
nur die Beziehung zwischen tblKunde und tblAnfrage ist richtig. Alle anderen sind völlig falsch.
Deinen Beziehungen nach wäre die KundenID, die Angebotsnummer, die Bestellnummer und die Bestellbestägigungsnummer alle gleich, kann das sein ?
Mal noch folgende Fragen:
- Wird ein Angebot immer auf Grund einer Anfrage gemacht, oder sind Anfrage und Angebot unabhängig ?
- Ist eine Bestellung immer an ein Angebot gekoppelt ?
- Ist die Rechnung an die Bestellung gekoppelt ?
- Was beinhaltet die Leistungserbringung ?
- Wieso gibt es bei der Bestellbestätigung eine Leistungsbezeichnung
Zitatahsoo ja klar es gibt mehrere Ansprechpartner...
Wenn es mehrere Ansprechpartner zu einer Firma gibt, wo speicherst Du den 2.Ap den 3.Ap usw. ?
Bitte versuche mal die einzelnen Tabellenaufgaben zu beschreiben.
@Ekkehard
Woran erkennst Du Nachschlagefelder ? Oder habe ich etwas übersehen.
Zitat von: nazo91 am Mai 19, 2016, 15:19:10
hä wieso denn??
Mein Hinweis bezog sich auf folgende Beziehungen:
tblAnfrage.KundenID <---> tblAngebot.Angebotsnummer
tblAngebot.Angebotsnummer <---> tblBestellung.Bestellnummer
tblBestellung.Bestellnummer <---> tblBestellbestätigung.Bestellbestätigungsnummer
tblSAPAuftrag.SAPAuftragsnummer <---> tblRechnung.Rechnungsnummer
tblSAPAuftrag.SAPAuftragsnummer <---> tblLeistungserbringung.ID
Findest du das OK???
@Ekkehard:
Wie erkennst du Nachschlagefelder in einem Beziehungsfenster? ???
@Klaus
ok ich schreib mal den Prozess auf..
Wir haben Kunden. Dann tritt eine Anfrage ein - wir müssen dann sagen ok Anfrage in Ordnung oder ob sie in Klärung ist.
Danach wenn die Anfrage in Ordnung ist wird ein Angebot erstellt. also sind Anfrage und Angebot voneinander abhängig.
Nachdem das Angebot erstellt wurde kriegen wir eine Bestellung.
Diese bestellung wird geprüft.
Wenn die Bestellung geprüft worden ist, schreiben wir eine Bestellbestätigung in die Datenbank kommt aber nur rein wen wir anschreiben und unter welchen Konditionen es gibt. #
Nach der Bestellbestätigung müssen wir das im SAP system eingeben und das system gibt uns eine SAPAuftragsnummer die wir dann speichern müssen. In diese Tabelle kommt auch die bezeichnung usw. rein.
Danach rufen wir die Ansprechpartner der Leistungserbringung an und sagen okay hier das und das müsst ihr machen, aber das wird nicht in der Datenbank festgehalten nur wer die Leistung erbringt und welche Abteilung.
Danach wird eine Rechnung erstellt und abgeschickt.
Das Ziel dieser Datenbank ist nur eine Übersicht zu haben welche sachen bereits gemacht wurden.
Hallo,
ich hatte noch weitere Fragen.
Hallo sorry, hab die anderen Fragen übersehen
Zitat- Wird ein Angebot immer auf Grund einer Anfrage gemacht, oder sind Anfrage und Angebot unabhängig ?
ja ein Angebot wird immer dann erstellt wenn eine Anfrage eintritt ansonst nicht
Zitat- Ist eine Bestellung immer an ein Angebot gekoppelt ?
Ja ist sie...wenn ein Angebot gemacht wird Erfolgt eine Bestellung oder auch nicht aber dann wird der ganze Prozess abgebrochen
Zitat- Ist die Rechnung an die Bestellung gekoppelt ?
Ja ist sie
Zitat- Was beinhaltet die Leistungserbringung ?
Die Leistungserbringung beinhaltet eigentlich nur wer die Leistung erbracht hat
Zitat- Wieso gibt es bei der Bestellbestätigung eine Leistungsbezeichnung
hmmm... also wenn die Bestellung eintritt steht ja auch die Leistungsbezeichnung in der Bestellung dann gebe ich sie der Bestellbestätigung mit weil sie dort enthalten sein muss, damit man weiss um welche Leistung es geht
ZitatWenn es mehrere Ansprechpartner zu einer Firma gibt, wo speicherst Du den 2.Ap den 3.Ap usw. ?
da habe ich mir noch keine Gedanken gemacht wo ich den zweiten speichere
LG nazo
Hallo,
@Maggie
An den eingerückten Feldnamen.
@nazo
Das Feld an sich bleibt schon drin, bekommt aber als Datentyp
"Zahl>Long Integer".
Die Felder, die da drunter stehen (eingerückt) kommen in eine neue
Tabelle mit einem (zusätzlichen) ID-Feld (am besten Autowert), über
das dann verknüpft wird. Beispiel (tblBestellungen):
Das Feld "Bestelldatei" wird zu Bestelldatei_FK.
Neue Tabelle ("tblBestellDateien"):
DateiID > Autowert (wird dann in "BestellDatei_FK" gespeichert)
FileData |
FileName > Datentypen weißt nur du.
FileType |
In Formulare kommt dann ein Kombi:
Datenherkunft: tblBestelldateien
gebundene Spalte: 1
SteuerelementInhalt: Bestelldatei_FK
Zitatda habe ich mir noch keine Gedanken gemacht wo ich den zweiten speichere
In eine zusätzliche Tabelle für ALLE Ansprechpartner, verknüpft über
die KundenID. Das jetzige Feld wird dann überflüssig.
gruss ekkehard
hey ekkehard,
danke das werd ich dann mal ausprobieren :)
LG Nazo
Hallo,
@ekkehard
die eingerückten Feldnamen sind kein Nachschlagefelder, da verwechselst Du was. Das sind Felder des Typs "Anlage". Das ist eine der Neuerungen der neueren Access Versionen. Die lassen sich nicht ersetzen, entweder man nimmt sie oder nicht. Die Anlagefelder sollen aber zur Speicherung von Anlagen (daher die eingerückten Namen) recht brauchbar sein.
@nazo91
Du hast hier ein hierarchische Tabellenfolge.
- Kunden
- Anfrage (Fremdschlüssel zum Kunden)
- Angebot (FS zur Anfrage
- Rechnung (FS zum Angebot)
Nur die Anfrage braucht einen Bezug zum Kunden.
Wenn Du mir die Tabellen im MDB Format (Access2003) zur Verfügung stellst, versuche ich Dir das mal umzustrukturieren.
Aber ich benötige unbedingt eine MDB (komprimiert und gezippt). Die Anlagefelder musst Du dann entfernen.
Nachtrag:
Der Vorschlag von ekkehard als Ersatz für die Nachschlagefelder brauchst Du nicht probieren, er hat da was verwechselt. Du hast so keine Felder.
Der Hinweis auf die noch erforderliche Tabelle für die Ap ist natürlich richtig.
Hallo Klaus,
Grrr. >:(
Hätte mir anhand der Feldnamen auch auffallen können.
@nazo
Sorry, Klaus hat natürlich recht; - brauchst Du nichts dran zu ändern.
gruss ekkehard
Guten Morgen Klaus,
leider kann ich die Datei nicht online stellen, da ich es nicht konvertieren kann...
Ich kanns dir wahrscheinlich heute abend zur Verfügung stellen.
ich habe jetzt die Tabelle Ansprechpartner angelegt und versuche jetzt das was du geschrieben hast nachzuvollziehen und die Beziehungen zu verbessern.
LG Nazo