Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Requery in Zusammenhang mit Exit oder nach Aktualisierung?

Begonnen von derilzemer, September 21, 2017, 20:01:26

⏪ vorheriges - nächstes ⏩

Beaker s.a.

Hallo Andreas,
Bin nicht sicher, aber ich versuche mal auszuhelfen.
ZitatPasst das Kriterium, was ich gemacht habe?
Nein, das Kriterium ist doch das 1. Kombi bzw. die KategorieID daraus
(1. und gebundene Spalte); - also

[Formulare]![frmErfassung]![cboKategorie]

Den JOIN brauchst du in der Abfrage von Kombi2 nicht, du willst doch nur die tblUKategorien gelistet haben. Es sollte reichen

SELECT U.KategorieID_F,
       U.UKategorieID,
       U.UKategorie
FROM tblUKategorie AS U
WHERE U.KategorieID_F=[Forms]![frmErfassung]![cboKategorie]

Zitatals Steuerelementinhalt NICHT KategorieID_F zuweisen als Bindung
Das sollte dann so aber gehen.
Wo da Felder aus tblSpiele herkommen sollen ist mit allerdings schleierhaft.
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

Hi Ekkehard,
danke erst mal auch für deine Hilfe. Ich hatte bevor ich in den Garten gegangen bin (genau wie Klaus :)...) noch einmal eine Kopie meiner funktionalen DB gemacht, also welche das Thema UKategorie noch nicht hat. An der Kopie habe ich dann die neue Tabelle tblUKategorie angelegt. Dann wollte ich die Beziehungen "umbauen" so wie es der Klaus gesagt und im Bild angedeutet hat. Den FS KategorieID_F aus tblUKategorie mit dem PK KategorieID aus tblKategorie zu verknüpfen ging. Aber den FS UKategorieID_F aus tblSpiele mit dem PK UKategorieID aus tblUKategorie lässt er nicht zu. DB kann diese Beziehung nicht herstellen, wenn referenzielle Integrität erzwungen wird.
Die Tabelle ist von den Eigenschaften identisch wenn ich diese mit anderen Tabellen vergleiche welche referenzielle Integrität haben, die hat ja auch noch keine Daten. Long Iteger, Inkrement, Indiziert Ja (ohne Dup.). Was ist denn jetzt schon wieder verkehrt in meiner DB Welt :(. I werd noch narrisch.....
Ich weiss nicht ob ich es mal erleben werde, etwas zu integrieren oder umzubauen ohne große Probs zu bekommen.
Gruß Andreas
Grüße und Dank im voraus
Andreas

MzKlMu

Hi,
jetzt bin ich aber etwas irritiert.
Du hast in #11 ein Bild der Beziehungen hochgeladen die auch richtig sind (und wie von mir vorgeschlagen). Und da ist doch RI eingestellt.
Wieso kannst Du jetzt keine einstellen ?

Ist das Bild nicht von der Original DB ?

Sind im Fremdschlüssel zur UKategorie schon Werte in der Spieletabelle ?
Gruß Klaus

derilzemer

Hi,
das stimmt. Da ich aber so viele Sideeffekt hatte etc. hatte ich das Teil weggeschmissen und eben neu gemacht. Ich dachte ja nicht, dass es genau hier zu einem Problem kommen könnte :(. Sag ja, ich bekomme noch Alpträume von der DB :(.

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

derilzemer

Hi,
Zitat von: MzKlMu am September 26, 2017, 18:57:24
Sind im Fremdschlüssel zur UKategorie schon Werte in der Spieletabelle ?
Ich habe das noch mal geprüft und in der Tat, es waren in 5 Datensätzen ein Nullwert drin. Ich habe das Feld in tblSpiele gelöscht, neu hinzugefügt und jetzt konnte ich die Beziehung auch herstellen. Sorry wegen der Irritation.

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

MzKlMu

Hallo,
Null in den Fremdschlüsselfeldern sollten kein Problem machen. Da muss etwas anderes drin gewesen sein.
Null ist in FS Feldern zulässig, auch mit RI.

Sonst wäre ja grundsätzlich ein Eintrag in jedem FS Feld notwendig, was aber nicht der Fall ist.

Schildere noch mal mit wenigen Worten, welche Problem Du noch hast, damit wir die Kuh heute noch vom Eis kriegen.  ;D
Gruß Klaus

derilzemer

Hi,
also die Kuh bewegt sich wie folgt auf dem Eis:
Die Beziehungen sehen jetzt wie bild1 aus. Ich habe das Feld KategorieID_F in tblSpiele noch NICHT gelöscht.
Ich habe jetzt das Kombi1 (cboKategorie) ungebunden wie vorgegeben eingerichtet. Kombi2 (cboUKategorie) auch eingerichtet wie vorgegeben und größen technisch auf die DropDown Pfeilgröße reduziert. Datensatzherkunft via select inkl.
Kriterium SELECT tblUKategorie.UKategorieID, tblUKategorie.Ukategorie FROM tblUKategorie WHERE (((tblUKategorie.KategorieID_F)=[Formulare]![frmErfassung]![cboKategorie])) OR (((tblUKategorie.KategorieID_F)=1));. Bei Fokuserhaltz habe ich für das Kombi2 Private Sub cboUKategorie_GotFocus()
    Me.cboUKategorie.Requery
End Sub
wobei hier Me.Requery wahrscheinlich reichen wird, oder? Im Steuerelementinhalt habe ich KategorieID_F. Hier bin ich unsicher. Wenn ich das Feld KategorieID_F aus tblSpiele gelöscht hätte, dann könnte ich es nicht auswählen und somit binden. Ist das richtig so?
Desweiteren habe ich noch links vom Dropdown Pfeil proforma ein Textfeld erstellt (txtUKategorie). Das ist der aktuelle Status.

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

MzKlMu

Hallo,
Zitatwobei hier Me.Requery wahrscheinlich reichen wird, oder?
nein, Me.Requery aktualisiert das Formular, Du musst aber geziehlt das Kombi aktualisieren. Der Code ist also richtig.
Warum hast Du noch ein OR in der Datenherkunft für Kombi2 ?
Mache das mal raus. Der Steuerelementinhalt für Kombi2 muss der Fremdschlüssel sein zur UKategorie also UKategorieID_F,  KategorieID_F ist definitiv falsch, das ergibt sich auch aus dem Beziehungsbild.

Gruß Klaus

derilzemer

Hi Klaus,
Zitat von: MzKlMu am September 26, 2017, 19:56:21
......Warum hast Du noch ein OR in der Datenherkunft für Kombi2 ?
Okay das hat mir Ekkehard vorhin schon geschrieben. Das habe ich dann wohl vergessen zu entfernen als ich die Abfrage getestet habe, mal wieder ein Lapsus :-(. HBa das jetzt entfernt.
Zitat von: MzKlMu am September 26, 2017, 19:56:21
Der Steuerelementinhalt für Kombi2 muss der Fremdschlüssel sein zur UKategorie also UKategorieID_F,  KategorieID_F ist definitiv falsch, das ergibt sich auch aus dem Beziehungsbild.
Okay, dann hatte ich das auch falsch verstanden (bin wohl ein Falschversteher, also kein Frauenversteher :(....).
Das Thema mit der KategorieID_F, dass das Feld nun ungebunden ist, dass es in den Bezihungen umgestellt wurde hat dahingehend massive Auswirkungen, dass meine tblMerkmale jetzt die Daten nicht mehr anzeigt. Aber lass uns mal erst das Hauptsächliche umstellen.

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

MzKlMu

Hi,
kannst Du mal ein Beziehungsbild hochladen, bei dem man auch den Zusammenhang mit den Merkmalen sieht ?
Gruß Klaus

derilzemer

#25
Hi,
das siehst du im Bildanhang von #21, rechts unten der grüne Kreis an der tblMerkmale. Aber ich sehe, dass dort das Problem NICHT liegt. Wenn ich den sel_Merkmale ausführe und eine MerkmalID mitgebe, dann findet er die auch. Das bedeutet, die aktuell mit Werten (Merkmale) hinterlegten Karten zeigen die Werte noch an (bild1), nur das Formular (frmKartenMerkmale), was ich aufrufe und wo ich Werte für die Karte eintrage, das zeigt sie mir nichts mehr an (bild2). Diesem Formular Kombifeld MerkmalID_F (scheiss Name für ein Kombi wie ich gerade sehe) liegt als Datensatzherkunft dieser select zugrunde (der wurde getestet und funktioniert):
SELECT tblMerkmale.MerkmalID, tblMerkmale.Merkmal, tblMerkmale.Einheit
FROM tblMerkmale
WHERE (((tblMerkmale.KategorieID_F)=[Formulare]![frmErfassung]![cboKategorie]))
ORDER BY tblMerkmale.Merkmal;

Hmmm, aber lass uns doch erst das mit der Kategorie und Unterkategorie fertigstellen, oder?

Edit:
Wenn ich diesen sel_Merkmale ausführe, dann frägt er nach einer ID. Wenn ich ihm diese gebe, z.B. 8 dann findet er auch die dafür hinterlegten Merkmale dieser Kategorie aus tblMerkmale.

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

MzKlMu

Hi,
im Anhang ein einfaches Beispiel.
Versuche es mal nachzuvollziehen und zu übertragen.
Gruß Klaus

derilzemer

Hi,
okay ich sehe die Funktionalität.
Aber nicht aufregen, selbstverständlich habe ich dazu jetzt die eine oder andere Frage :(.

  • Zuerst einmal habe ich in den Beziehungen gesehen, dass in tblSpiele noch KategorieID_F drin ist. Ist das noch notwendig oder nicht?
  • Das Textfeld unterhalb dem ungebunden Kombi Kategorie. Das würdest du dann praktisch über das ungebundene Kombi legen?
Wegen Ereignis bei Fokuserhalt ist aber etwas mehr als "nur" ein Requery. Hab bei Donabaur zwischen durch gelesen, dass man dies am besten/saubersten mit einem SQL Select löst, wobei er wirklich Kombiabhängigkeiten darstellt.
Ich bau das jetzt mal nach. Dann muss ich schauen, wie sich das mit den KartenMerkmalen verhält, ob die herumspacken.

Gruß Andreas


Grüße und Dank im voraus
Andreas

derilzemer

#28
Hi,
hab da ein Problem. Du hast in deiner Beispiel-DB auf der Form einen Select SELECT tblSpiele.*, tblUKategorien.UKategorie, tblKategorie.Kategorie FROM tblKategorie INNER JOIN (tblUKategorien INNER JOIN tblSpiele ON tblUKategorien.UKategorieID=tblSpiele.UKategorieID_F) ON tblKategorie.KategorieID=tblUKategorien.KategorieID_F;
und erschlägst somit alles, sprich auch die Textfelder stehen zur Auswahl. Ich habe aktuell auf der Form "nur" tblSpiele. Somit sehe ich die Textfelder nicht, die ich erstellen muss. Wie gehe ich da am besten vor? Gebe ich den String z.B. so ein bei mir in der Form, dann bekommen ALLE Felder das grüne Eckchen, haben also keine Assoziation mehr :(. Ein schneller  Tipp wäre super.

Edit 00:59: Wenn ich den String als Datensatzquelle "neu" anlege, also tblSpiele als Datensatzherkunft lösche und über den Abfrage Generator die Tabellen neu adde und entsprechend platziere, dann scheint das im ersten Moment zu passen, also keine Feld Assoziationsprobleme. Ich kann dann auch die beiden Textfelder binden. Aber gehe ich dann in die Formularanscicht, dann sind erst mal alle Datensätze weg :(. In der Tabelle tblSpiele ist zwar alles vorhanden, aber im Hauptformular sind sie nicht mehr verfügbar.

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

derilzemer

Hallo Klaus,
brauch noch deine Hilfe wegen der Umstellung gestern.
Nachdem ich alles umgestellt habe hatte ich dir ja heute Nacht noch von einem "Anzeigeproblem" berichtet. Ich bin heute Abend erst dazu gekommen, das ganze mal mit einer leeren DB zu testen. Ich habe dann meine Datensätze importiert, insgesamt 2552 Stück. Gehe ich ins frmErfassung, dann zeigt er mit 27 Datensätze an :(. Die sind völlig willkürlich was die ID abgeht, das geht von ID 2 über ID 764 bis hin zu 2453 und das noch wild durcheinander :-(. Im Suchformular frmQuartettSuche zeigt er mir die 2552 Datensätze alle an, kann aber nciht wie früher aus der Suche heraus zum Datensatz springen, lediglich zu den 27 Stück :-[. Kannst du mir sagen warum das so ist? Weiterhin auch die Frage wegen dem Feld KategorieID_F in der tbl Spiele, was jetzt ja "überflüssig" ist. Kann ich das löschen?
Grüße und Dank im voraus
Andreas