Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Bei neuem Datensatz soll in einem CombiFeld im Ufo Standardwert übernehmen...

Begonnen von derilzemer, Juli 22, 2017, 14:17:29

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

naja, irgendwer/-was muss ja den Inhalt (!) ,  nicht den Defaultwert ändern...  Also mal die Form_Open und Form_Load-Ereignisse untersuchen, ob da entspr. Code sein "Unwesen" treibt.  (evtl. die Prozeduren posten).
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

derilzemer

Hallo,
einzig das, was sich auch auf das Combi bezieht habe ich in den Ereignissen des Hauptformular gefunden.
Private Sub Form_Current()
    Me!frmErfassungUfoZusatzkarten.Form!cboZusatzKartenArt.Requery

In den anderen Ereignissen (siehe Bild) so schnöde Einträge wie
Private Sub Form_Load()
    Me.txtUser = Environ("USERNAME")
End Sub

Private Sub Form_AfterUpdate()
    Me.Recalc
End Sub

Bei Vor Aktualisierung habe ich nur die Pflichtfeldthematik drinne, die ich hier nicht rein paste (zuviel).
Private Sub Form_AfterDelConfirm(Status As Integer)
    Me.Recalc
End Sub

Private Sub Form_Open(Cancel As Integer)
    DoCmd.Maximize
End Sub

Im Ufo habe ich gar kein Ereignis hinterlegt, Standardwerte abrufen steht auf Ja. Auf dem Combifeld selbst eben nur den Eintrag unter =[tblZusatzKartenArt]![ZusatzKartenArtID](39) (siehe bild2)
Puuhh. Da finde ich so nichts, was dieses Unwesen angeht :(.

Gruß Andreas


Grüße und Dank im voraus
Andreas

Beaker s.a.

Hallo Andreas,
Was ich nicht verstehe, ist dieser Eintrag.
=[tblZusatzKartenArt]![ZusatzKartenArtID](39)
Wo (in welcher Eigenschaft) steht das denn?
Wenn der Standardwert (DefaultValue) immer 39 ist, dann reicht es
doch diesen Wert dort einzutragen. Das gebundene Feld steht doch
schon in der Datenherkunft (ControlSource).
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

derilzemer

Hallo Ekkehard,
Zitat von: Beaker s.a. am Juli 22, 2017, 21:59:55
Was ich nicht verstehe, ist dieser Eintrag.
=[tblZusatzKartenArt]![ZusatzKartenArtID](39)
Wo (in welcher Eigenschaft) steht das denn?
Wenn der Standardwert (DefaultValue) immer 39 ist, dann reicht es
doch diesen Wert dort einzutragen. Das gebundene Feld steht doch
schon in der Datenherkunft (ControlSource).
Den habe ich da eingetragen (bild1)
Das hatte ich ja schon mal zu Anfang gemacht mit nur der 39 einzutragen und in der Einleitung zum Thread so auch beschrieben. Aber auch da trägt er dann eben in allen schon bestehenden Datensätze diesen Defaultwert ein, nicht nur in den neuen! On Top dazu kommt dann, dass wenn ich den dann abändern will, er sich als neuer Datensatz im Endlosformular unten dran wieder dazu gesellt!
Danach habe ich den Eintrag =[tblZusatzKartenArt]![ZusatzKartenArtID](39) auch nach anraten von Franz eingetragen, aber die gleiche Wirkung. Ich scheine in der DB irgendwo einen Fetzen Code zu haben, der dann damit sein Unwesen treibt :(. Eigentlich ist es zum Mäuse melken.
Gruß Andreas
Grüße und Dank im voraus
Andreas

DF6GL

Hallo,


in der Eigenschaft "Steuerelelentinhalt" des Kombis muss stehen:

ZusatzKartenArtID


In der Eigenschaft "Standardwert" des Kombis muss stehen:

39


Damit wäre das Kombi an das Feld ZusatzKartenArtID an das Tabellenfeld gebunden und der Wert 39  (bzw. der dazu gehörende Text entspr. der ersten sichtbaren Kombilistenfeldspalte) erscheint im Kombi nur bei einem neuen Datensatz.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

derilzemer

Guten Morgen Franz,
Zitat von: DF6GL am Juli 23, 2017, 07:05:05
in der Eigenschaft "Steuerelelentinhalt" des Kombis muss stehen:
ZusatzKartenArtID
In der Eigenschaft "Standardwert" des Kombis muss stehen:
39
Damit wäre das Kombi an das Feld ZusatzKartenArtID an das Tabellenfeld gebunden und der Wert 39  (bzw. der dazu gehörende Text entspr. der ersten sichtbaren Kombilistenfeldspalte) erscheint im Kombi nur bei einem neuen Datensatz.
das hört sich sinnig an, aber im ersten Moment dachte ich schon und das geht jetzt so einfach  :-[? Vorweg, so löste sich das Problem nicht. Fazit daraus für mich war, ob das Konstrukt diese kleinen Features falsch ist. Deshalb fasse ich es mal so kurz wie es geht hier zusammen. frmErfassungUfoZusatzKarten ist ein Ufo in frmErfassung. Für frmErfassungUfoZusatzKarten sind 2 Tabellen vorhanden, tblZusatzKartenArt (bild1) und tblZusatzKartenArtZuSpiel (bild2).
Dem Ufo liegt als Daten tblZusatzKartenArtZuSpiel zugrunde (bild3). Für cboZusatzKartenArt steht mir im Steuerelementinhalt kein ZusatzkartenArttID zur Verfügung (siehe bild4). Der aktuelle Select dazu sieht ja so aus
SELECT tblZusatzKartenArt.ZusatzKartenArtID,
       tblZusatzKartenArt.ZusatzKartenArt,
       tblZusatzKartenArt.VerlagID_F,
       tblVerlag.VerlagID
FROM tblVerlag
INNER JOIN tblZusatzKartenArt ON tblVerlag.VerlagID = tblZusatzKartenArt.VerlagID_F
WHERE (((tblZusatzKartenArt.VerlagID_F)=[Formulare]![frmErfassung]![cboIDVerlag]))
  OR (((tblVerlag.VerlagID)=0))
  OR (((tblVerlag.VerlagID)=2))
  OR (((tblVerlag.VerlagID)=12))
  OR (((tblVerlag.VerlagID)=15))
ORDER BY tblZusatzKartenArt.ZusatzKartenArtID;


Da im Steuerelementinhalt ZusatzKartenArtID als Auswahl nicht zur Verfügung steht, habe ich im Steuerelementinhalt den Eintrag gemacht: =[tblZusatzKartenArt].[ZusatzKartenArtID] und unter Standardwert 39 eingetragen (bild5). Das funktioniert dann nicht mehr, da die Auswahl zwar da ist, aber nichts mehr ausgewählt werden kann (Das Steuerelement kann nicht bearbeitet werden;es ist an den Ausdruck [tblZusatzKartenArt].[ZusatzKartenArtID] gebunden). Wie erreiche ich deine Anforderung?

Gruß Andreas
Grüße und Dank im voraus
Andreas

Lachtaube

Ich verstehe zwar den Formularbezug nicht, aber die zweite Tabelle dürfte definitiv in der Abfrage überflüssig sein.
SELECT zusatzkartenartid,
       zusatzkartenart,
       verlagid_f
FROM   TBLZUSATZKARTENART
WHERE  verlagid_f = [forms]![frmrfassung]![cboidverlag] OR
       verlagid_f IN( 0, 2, 12, 15 )
ORDER  BY 1;


PS: mit dem Bilderbuch-Ballast ist übrigens nichts anzufangen - aber das hatte ich ja schon einmal anderer Stelle erwähnt.
Grüße von der (⌒▽⌒)

derilzemer

Hi,
Zitat von: Lachtaube am Juli 23, 2017, 11:31:23
Ich verstehe zwar den Formularbezug nicht, aber die zweite Tabelle dürfte definitiv in der Abfrage überflüssig sein.
SELECT zusatzkartenartid,
       zusatzkartenart,
       verlagid_f
FROM   TBLZUSATZKARTENART
WHERE  verlagid_f = [forms]![frmrfassung]![cboidverlag] OR
       verlagid_f IN( 0, 2, 12, 15 )
ORDER  BY 1;

PS: mit dem Bilderbuch-Ballast ist übrigens nichts anzufangen - aber das hatte ich ja schon einmal anderer Stelle erwähnt.
Ich habe den Codebalast entfernt und nach deiner Angabe angepasst. Aber im Steuerelementinhalt kann ich nach wie vor ZusatzKartenArtID nicht auswählen, wobei doch ZusatzKartenArtID_F den gleichen Part erfüllt, oder etwa nicht?
Das mit den Bildern hast du mir schon gesagt, das stimmt. Es ist also auch kein Argument, dass andere"Newbies" oder Menschen, die mit den Ausdrücken oder oder selects auch nichts anfangen können, mit Bildern zumindest sehen, wovon man redet. Ich werde es adaptieren und nur dann ein Bild anhängen, wenn es verlangt wird.

Gruß Andreas
Grüße und Dank im voraus
Andreas

Lachtaube

Ein Steuerelementinhalt wie =[tblZusatzKartenArt].[ZusatzKartenArtID] verhindert zuverläsig das Überschreiben des Inhalts dur den Anwender.

Andererseits vermisse ich jetzt aber einen Bezug auf das eigentlich Problem, dass Datensätze von Geisterhand ändern - oder ist das bereits abgestellt?
Grüße von der (⌒▽⌒)

derilzemer

Hallo,
Zitat von: Lachtaube am Juli 23, 2017, 12:33:03
Andererseits vermisse ich jetzt aber einen Bezug auf das eigentlich Problem, dass Datensätze von Geisterhand ändern - oder ist das bereits abgestellt?
ich habe jetzt nur den select umgestellt, Steuerelementinhalt ist weiterhin ZusatzKartenArtID_F. Wenn ich jetzt unter Standardwert die 39 eintrage, dann habe ich das Unwesen immer noch. Es ist dann zwar in den neuen Datensätzen im Kombifeld cboZusatzKartenArt die ID 39 in Form von -keine Zusatzkarten o. Flyer- drin, aber dies wird auch bei allen bestehenden Datensätzen hinzugefügt. Ändern kann ich den Eintrag dann zwar, aber er fügt dann sofort -keine Zusatzkarten o. Flyer- wieder hinzu.
Ich habe im VBA Editor schon im ganzen Projekt nach dem Kombifeldnamen, nach ZusatzKartenArtID usw. aber ich finde nichts was sich irgendwie darauf bezieht :(. Ich weiss aktuell nicht, wie ich den Fehler da herausfiltern könnte.
Gruß Andreas
Grüße und Dank im voraus
Andreas

Lachtaube

Da hilft dann wohl nur wieder eine Beispieldatenbank (die Bilder habe ich noch).
Grüße von der (⌒▽⌒)

DF6GL

Hallo,


der Krux liegt vermutlich in der verknüpfenden Abfrage für die Datenherkunft des Forms... (und in m. E. falschen Kombinatorik) , z. B auch in der Verwendung der harten "Magic Numbers"  in der Where-Condition.  Aber mit den Tabellenbeziehungen habe ich mich nicht weiter auseinander gesetzt.


Das Form zeigt dann so viele "gleiche" Datensätze (man könnte auch "Duplikate" sagen)aus der 1-Tabelle an, wie es DS für die n-Tabelle gibt. Vermutlich ist "..aber dies wird auch bei allen bestehenden Datensätzen hinzugefügt."    eine Fehleinschätzung der Situation.

Zudem schlage ich vor,  für Datenherkünfte, auch für UFOs, nur die Tabellennamen selbst heranzuziehen, oder  eine Abfrage auf maximal eine Tabelle , wenn eine Vorsortierung  erwünscht wäre.

Unterformulare  (UFO-Steuerelemente) sind dann über die Eigenschaften "Verknüpfen von/nach" zu synchronisieren.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

derilzemer

Hallo,
Zitat von: Lachtaube am Juli 23, 2017, 14:02:00
Da hilft dann wohl nur wieder eine Beispieldatenbank ....
die Beispiel DB kann man hier downloaden, zum Anhängen ist sie 400kb zu groß.
http://quartettportal.de/SW/QuartettDB_Forum.zip
@Franz
Mit den Magic Numbers, das wusste ich nicht anders zu lösen :(.
Gruß Andreas
Grüße und Dank im voraus
Andreas

Lachtaube

Mit einer leeren Tabelle tblZusatzKartenArtZuSpiel macht das Helfen nun wirklich keinen Spaß.  :'(
Grüße von der (⌒▽⌒)

derilzemer

Hi,
Zitat von: Lachtaube am Juli 23, 2017, 15:59:03
Mit einer leeren Tabelle tblZusatzKartenArtZuSpiel macht das Helfen nun wirklich keinen Spaß.  :'(
sorry, ich dachte ihr wollt das eventuell selbst mal auswählen auf der grünen Wiese. Ich habe jetzt alle 8 Datensätze bestückt. Einfach noch einmal downloaden http://quartettportal.de/SW/QuartettDB_Forum.zip
Wenn du dann für das combifeld Standardwert 39 einstellst, dann siehst du den Effekt, den das bewirkt.
Gruß Andreas
Grüße und Dank im voraus
Andreas