Neuigkeiten:

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

Mobiles Hauptmenü

Access abfrage / mit unterschiedlichen Spalten

Begonnen von Weniger, Mai 04, 2016, 00:52:31

⏪ vorheriges - nächstes ⏩

Weniger

Hallo zusammen bin auf was kniffliges gestoßen, und bei langem  suchen  nichts im Netz gefunden .
Folgender Situation:
Habe unterschiedliche Dateien a1.a2.a3 Excel u. Access
Diese Dateien rufe ich in einer Datei ab (verknüpft) das funktioniert  auch gut.
So nun habe ich abfrage_a2 die zB. Auf a2 Tabelle laufen.
(In der Datei a2 sind 148 Spalten = Felder in access)
In der abfrage werden dan nur Feld1,Feld2....Feld20 verwendet

Soweit als super  :)

Eine weitere abfrage  (Feld Vorgabe)
In der ersten Zeile steht zB. Feld20 o. Feld4 (ändert sich durch weitere abfragen)

Nun möchte ich per VBA zuweisen das Inder oben beschrieben  abfrage_a2  nicht Feld20 verwendet wird sonder das was in der Feld Vorgabe steht.

Ich habe schon einiges zusammen geschustert bin aber relativ Neuling über einen Lösungsvorschlag würde ich mich sehr freuen :-\

Hitergrund die original Daten ändern sich. Gleich viele Spalten nur das die Auswertung sich auf andere Spalten bezieht
Deshalb die Änderung mit Feld x

...
Abfrage.
...
StrSQl = select [feld1], [feld2]..., [feld20] * & _
....
Beim Start wird diese Abfrage ausgeführt und da wo das Feld20 ist sollte dan das steht
(Feld Vorgabe)

Zum Beispiel Datei öffnen dann nimmt es automatisch Feld5
Das nächste Mal nimmt es dann Feld7
Danke für die Nachricht

MaggieMay

Hallo,

es gibt immer eine Lösung, aber das setzt voraus, dass man das Problem verstanden hat, was auch nach mehrmaligem Lesen deines Beitrags kaum möglich ist.

Versetze dich doch bitte mal in die Lage eines Außenstehenden, der keine Ahnung hat von dem was dich möglicherweise schon seit längerem beschäftigt. Und dann fang noch einmal von vorne an mit deiner Problembeschreibung.

Verwende dabei konkrete Angaben bzgl. Tabellenbezeichnungen und deren Herkunft und auch deren Datenfelder.
Mit einer Aussage wie bspw.
Zitatnicht Feld20 verwendet wird sonder das was in der Feld Vorgabe steht
kann man nichts anfangen ohne die Hintergründe zu kennen.



Freundliche Grüße
MaggieMay

Weniger

Danke für die Nachricht
habe noch ein paar Daten hinzugefügt
Noch ein Bild
Danke

MaggieMay

Hallo,

du erstellst also beim Öffnen des Formulars eine neue Abfrage.
Anstatt immer wieder Abfragen zu löschen und neu zu erstellen, kannst du auch einer dafür vorgesehenen gespeicherten "Allzweck"-Abfrage zur Laufzeit einen neuen Code "unterschieben".
Das sähe dann so aus:
Private Sub Form_Open(Cancel As Integer)
    Dim strSQL As String
    strSQL = "..."
    CurrentDB.QueryDefs("Neu").SQL = strSQL
End Sub


Was dein Problem betrifft sind wir damit aber noch kein Stückchen weiter gekommen.

BTW:
VBA- und SQL-Code zeigt man nicht per Bild, sondern fügt den Text (kopierfähig!) in Code-Tags ein.
Freundliche Grüße
MaggieMay

Weniger

Hallo
Ist es Vieleicht möglich
Die Daten für STRSQL = " aus einer Zelle oder Textdatei auszulesen und zu verwenden"

Private Sub Form_Open(Cancel As Integer)
    Dim strSQL As String
    strSQL = Verweis auf eine andere Datei
    CurrentDB.QueryDefs("Neu").SQL = strSQL
End Sub


Oder eine Abfrage auf eine Tabelle wo das Ergebnis nur die vorgegebenen Spalten wiedergibt würde das gehen???
Z.B 10 Spalten
Ergebnis Abfrage Spalte 1 bis 5

Gruß weniger

MaggieMay

Möglich ist vieles, aber macht es auch Sinn? Solange nicht klar ist, worum es dir geht, lässt sich kein vernünftiger Vorschlag machen. Kannst du den SQL-String nicht zur Laufzeit erzeugen? Wovon ist der Code abhängig? Vielleicht erläuterst du das mal an zwei konkreten Beispielen, damit man sieht worum es (dir) geht.

Was sind "vorgegebene Spalten", was ist der Hintergrund und was ist dein Ziel?
Freundliche Grüße
MaggieMay

MzKlMu

#6
##Gelöscht
Hat nicht ganz gepasst.
Siehe nachfolgende Anmerkung von Ebs.
Gruß Klaus

ebs17

ZitatBeim Start wird diese Abfrage ausgeführt und da wo das Feld20 ist sollte dan das steht
(Feld Vorgabe)

Zum Beispiel Datei öffnen dann nimmt es automatisch Feld5
Das nächste Mal nimmt es dann Feld7

Wer hat denn dazu die Würfel?
Oder gibt es da ein nachvollziehbares System?

@MzKlMu:
Bei verknüpften Exceltabellen ist die Frage nach dem Datenmodell eine "besondere", die vermutlich zu keinem verwertbaren Ergebnis führen wird.
Mit freundlichem Glück Auf!

Eberhard

Weniger

Danke für die Anteilnahme,
im Anhang Datei angefügt, Access Tabellen sind bei mir verknüpft
ich hoffe das nun mit mehr Einblick in meine Datei evtl. doch noch eine Lösung gefunden wird.
VBA_ unter Formular ansehen
Danke Gruß
Weniger

MaggieMay

Hallo,

eine Lösung könnte folgendermaßen aussehen:
     strSQL = "SELECT [Feld1], [Feld4]  " & _
              "FROM LINKS " & _
              "WHERE " & DLookUp("F6","_Vorgabe") & "= 'Links_1'"   


Besser wäre es allerdings, du könntest dein Konzept mal auf nachvollziehbare Weise beschreiben, vielleicht gäbe es ja auch noch eine ganz andere Lösung.
Was hast du vor mit der Tabelle "Vorgabe", wozu dienen die vielen Spalten?
Freundliche Grüße
MaggieMay


MaggieMay

#11
Zitat von: Weniger am Mai 06, 2016, 13:46:25
Getestet
Ebenfalls!

Die Frage ist doch, wie du das getestet hast.
Aus deiner Beispiel-DB geht nicht hervor, wozu die Abfrage anschließend eingesetzt wird.
Freundliche Grüße
MaggieMay

Weniger

Dies sind Daten um später unterschiedliche Diagramme abzubilden
je nach Wunsch sollte dann die Spalte (Feld) sich ändern um das gewünschte Diagramm abzubilden!

Nachtrag zu den Roh Daten (es ist eine Access Datei / und zwei Textdateien die ich importiere

(Der im VBA geschriebene Code ist ein Beispiel (später möchte ich die dann in die anderen abfragen einarbeiten)

Aktuell erzeuge ich im Excel Zwei Diagramme mit Pivot-Tabelle
(wenn sich die spalte nicht ändert ist dies kein Problem, nur wenn in der Roh Datei, die Daten die benötigt werden in eine andere spalte rutschen somit ist jegliche abfrage für den a.............. )
deswegen möchte ich die Spalte vorgeben in der abfrage!!!!!!!

ich hoffe ich nun Klarheit in dieses Problem gebracht!!!!!!!!

Gruß
Weniger




 

MaggieMay

Freundliche Grüße
MaggieMay

Weniger

 :-\
Hallo miteinander
schaut euch die Datei mahl an einiges müsst ihr neu verlinken damit es funktioniert
sprich im Access nicht aber im Excel
evtl. kommt nun Klarheit in die Thematik!
(in der Access Datei sind alle gesammelten Daten!!
im Excel werden Diagramme abgebildet!!, da die werte unterschiedlich sind (Tages abhängig) werden die Vorgaben per Makro geändert!)
((( nun fehlt nur noch das "kleine teil " das im Access sagt in welcher Spalte die werte stehen wen im   Excel unter NegNr. die spalten Nummer steht (gelb hinterlegt) )))  ""wird im Access abgefragt""
hoffe das hilft 
danke