Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: PhilippSIN am Juli 15, 2010, 09:20:54

Titel: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: PhilippSIN am Juli 15, 2010, 09:20:54
Hi zusammen,

ich stehe vor einem fuer mich scheinbar unloesbaren, fuer einige von euch jedoch einfachen Herausforderung.

Ich habe auf einem Formular in meiner Datenbank eine List Box die ihre Eintraege bzw. Daten aus einer Abfrage (oder Tabelle) bezieht.

Nun will ich die Abfrage laufen lassen, um die Daten der List Box zu aktualisieren. Jedoch erhalte ich dann die Meldung, dass die Database ENgine die Tabelle nicht erstellen kann, da sie in Benutzung ist.

Wie kann ich es erreichen, den Inhalt einer List Box zu aktualisieren?

DANKE
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: MzKlMu am Juli 15, 2010, 09:27:53
Hallo,
Und wieso willst Du zur Aktualisierung eine neue Tabelle erstellen?
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: PhilippSIN am Juli 15, 2010, 09:39:50
Die List BOx wird mit den Daten einer Tabelle gefuellt. Im neuen Monat z.B. wuerde sich der Inhalt der Tabelle aendern und folglich der INhalt der List Box. Allerdings kann ich diese "make table - Abfrage" eben nicht laufen lassen, da die Tabelle bereits von der List Box "blockiert" wird.
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: MzKlMu am Juli 15, 2010, 09:46:25
Hallo,
und wo kommt der neue Eintrag her?

Siehe auch: >:(

http://www.office-loesung.de/ftopic398229_0_0_asc.php (http://www.office-loesung.de/ftopic398229_0_0_asc.php)
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: PhilippSIN am Juli 15, 2010, 09:59:45
sorry, wusste nicht, dass beide Foren zusammenhaengen...
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: database am Juli 15, 2010, 10:08:32
Hallo,

....hängen nicht zusammen, ABER: http://www.access-o-mania.de/index.php?ind=community&op=netiquette (http://www.access-o-mania.de/index.php?ind=community&op=netiquette)

In den Forumsregeln stehts zu lesen ...  Crosspostings sind unerwünscht.

Ein wenig verwirrend deine Wünsche:
ZitatNun will ich die Abfrage laufen lassen, um die Daten der List Box zu aktualisieren
und dann ...:
ZitatIm neuen Monat z.B. wuerde sich der Inhalt der Tabelle aendern und folglich der INhalt der List Box

Soll die Listbox nun die aktuellen Daten anzeigen oder nicht?
Wenn du als Datenherkunft die SQL eingetragen hast aktualisiert sich die Liste bei jedem Öffnen des Formulars von alleine, gleiches gilt wenn die Datenherkunft die Tabelle selbst ist.
Dazu brauchst du ja keine neue Tabelle erstellen, bei 10x öffnen deines Formulars oder der Datenbank hast du dann 10 Tabellen mehr!
???

Peter
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: PhilippSIN am Juli 15, 2010, 10:30:39
Hi Peter,

ich bewege mich nicht haeufig in Foren, aktuell draengt jedoch etwas die Zeit. Zukuenftig werde ich jedoch entsprechende Regeln beachten!

Meine "Wuensche" moegen etwas verwirrend sein, was jedoch daran liegt, dass ich die korrekte Fachterminologie nicht kenne.

Mein Problem hat sich dahin in einem ersten Schritt erledigt, dass mit einer ABfrage als Datenquelle - wie du geschrieben hast - sich die Liste bei jedem Oeffnen neu aktualisiert (falls sich etwas veraendert hat).

Jedoch habe ich eine zweite List Box, welche in Abhaengigkeit zur ersten steht und sich aktualieren muesste bei geoeffnetem Formular.

Nochmals eine kurze weitere Erlaeuterung.

1. Listbox enthaelt Kundennummern, die sich bei oeffnen des Formulars aktualisieren (das passt!!)

2. Listbox enthaelt Auftragsnummern in Abhaengigkeit von 1. Listbox, dh. es sollen nur die AUftragsnummern des Kunden angezeigt werden, welchen ich in 1. List Box anklicke!
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: database am Juli 15, 2010, 12:14:30
Hallo,

...naja, dann reden wir von abhängigen Listenfeldern ;D

Du kannst per VBA ja den angeklickten Wert in Liste 1 auslesen ... z.B. mit 
Dim xy as String
xy = Me!DeinListenfeld

(Wenn die gebundene Spalte TEXT enthält)

Mit diesem ermittelten Wert kannst du dann die SQL für Liste 2 zusammenbasteln ...  etwa so: 

Dim strSQL as String
strSQL = "SELECT Spalte1, Spalte2 FROM DeineTabelle WHERE Spalte1 ='" & xy & "'"

Diese SQL weist du dann der Liste 2 zu:

Me!Liste2.Rowsource = strSQL
...vorausgesetzt der Herkunftstyp der Liste 2 steht auf 'Tabelle/Abfrage'

Nach dem Zuweisen der SQL mussst du dann noch durch

Me!Liste2.Requery
... die angezeigten Daten aktualisieren.

HTH

Peter
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: PhilippSIN am Juli 16, 2010, 04:09:34
Hi Peter,

vielen Dank, an der Umsetzung hapert es noch etwas be mir.

Folgenden Code habe ich im Editor:

Private Sub allcustomerList_click()

Dim xy As String
    xy = Me!allcustomerList
   
Dim strSQL As String
    strSQL = "SELECT UCORNO, FROM S63 WHERE CompanyName ='" & xy & "'"

Me!OrderList.RowSource = "strSQL"

Me!OrderList.Requery

End Sub


Dabei ist "allcustomerlist" das 1. Listenfeld. (ich glaube, dass Problem ist im folgenden Schritt)

Aus einer Abfrage "S63" mit 1.Spalte: CompanyName und 2. Spalte: UCORNO soll nun im 2. Listenfeld UCORNO ausgegeben werden, in Abhaengigkeit was in 1. Listenfeld CompanyName angeklickt wurde.

Was meinst du zu dem Code?



Ich habe eine Abfrage mit 1. Spalte
Titel: Re: Aktualisierung einer List Box bzw. deren zugrundeliegenden Abfrage / Tabelle
Beitrag von: database am Juli 16, 2010, 07:47:52
Hallo, guten Morgen,

ZitatAus einer Abfrage "S63"
...ist zwar möglich aber warum nimmst du nicht die zugrunde liegende Tabelle(n)?
Bei Abfragen bin ich immer ein bisschen skeptisch, da durch in der Abfrage eventuell definierte Einschränkungen möglicherweise nicht die erwarteten Ergebnisse liefern können.


"SELECT UCORNO, FROM S63 WHERE CompanyName ='" & xy & "'"


...ist falsch, zwischen den auszugebenden Spalten und dem Schlüsselwort FROM gibt's kein Komma!

Me!OrderList.RowSource = "strSQL"

...ist auch falsch, die Zuweisung der Rowsource erfolgt OHNE Hochkommata.

Füge vorsichtshalber noch folgende Zeile VOR der Zuweisung der RowSource ein:

Me!OrderList.RowSourceType = "Table/Query"

Somit sollte der fertige Code dann so aussehen:

Private Sub allcustomerList_Click()

   Dim strCompany As String
   Dim strSQL As String

   strCompany = Me!allcustomerList
   strSQL = "SELECT UCORNO FROM S63 WHERE CompanyName ='" & strCompany & "'"

   Me!OrderList.RowSourceType = "Table/Query"
   Me!OrderList.RowSource = strSQL
   Me!OrderList.Requery

End Sub



Dann sollte es eigentlich laufen.

Greets