Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Kontrollkästchen wählt Spalten aus Abfrage aus
Gehe zu Seite 1, 2  Weiter
zurück: SQL Abfrage liefert Fehler weiter: leerer Datensatz zu erst, alte Datensätze abrufbar Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast_Andrea
Gast


Verfasst am:
08. Jul 2011, 09:05
Rufname:

Kontrollkästchen wählt Spalten aus Abfrage aus - Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Guten Morgen,

ich habe ein Formular, das mit einer Abfrage verknüpft ist. Jetzt möchte ich Kontrollkätschen einfügen für jede Spalte meiner Abfrage. Wenn ich das Kontrollkästchen aktiviere, soll die Spalte auch in meinem Ergebnis angezeigt werden. Bleibt es unmarkiert, soll die Spalte im Ergebnis nicht angezeigt werden.

Dh ich brauche eine Anweisung die das Kästchen "Anzeigen" in der Abfrage anspricht. Vielleicht etwas in der Richtung:
Code:
IF [Forms]![Formularabfrage]![Kontrollkästchen_Nachname]=True THEN SELECT Nachname FROM Mitarbeiter...
Nur ist diese Form einer SQL Abfrage nicht zulässig, oder? Ich wäre froh, wenn es ohne viel VB geht Smile

Danke! Viele Grüße, Andrea
MissPh!
Office-VBA-Programmiererin


Verfasst am:
08. Jul 2011, 18:32
Rufname:
Wohnort: NRW


AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Hallo,

wo bzw. wie zeigst du das Ergebnis denn an? Genügt es nicht die Datenfelder im Formular auszublenden?

_________________
Gruß MissPh!
Gast RDH
Gast


Verfasst am:
10. Jul 2011, 12:34
Rufname:

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2007

Hallo Gast_Andrea,
hallo MissPh!,

zunächst herzlichen Dank an das Forum und die wertvollen Tipps, aus denen ich so Manches sehr gut umsetzten konnte.

Die Frage von Andrea beschäftigt mich auch, wobei der Tipp von MissPh! (Ein- und Ausblenden über bedingte Formatierung) mir nicht so richtig weiterhilft.

Ich möchte über die Auswahl der Kontrollhaken den Export bestimmter Spalten einer Abfrage/Tabelle steuern. Der Benutzer soll damit die Möglichkeit erhalten, sich bestimmte Daten individuell nach Excel zu exportieren um diese dort weiter zu verarbeiten.

Im Formular "Export" habe ich Kontrollkaken E1, E2 usw angelegt, die zur Ansteuerung der Spalten dienen sollen.

Die SQL Ansicht der Abfrage sieht so aus (Die Abfrage enthält noch ein paar mehr Felder):
Code:
SELECT [Adreß-Nr], Betreuernr, Kalenderwoche, Meldedatum, Firma,
       [PLZ Unternehmen], [Ort Unternehmen], [Str Unternehmen],
       Gewerk, H_Gewerk
FROM   t_Adreßkartei;
Vielleicht hat ja jemand eine Idee oder gar elegante Lösung für dieses Problem.

Herzlichen Dank im voraus sowie beste Grüße

Gast RDH
steffen0815
VBA-Programmierer


Verfasst am:
10. Jul 2011, 13:51
Rufname:

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Hallo,
Spalten ausblenden könnte u.U. funktionieren, denn ich vermute dass ausgeblendete Spalten nicht exportiert werden (das hat nix mit bedingter Formatierung zu tun!!).

Ansonsten muss du auf jeden Fall mit VBA arbeiten. Entweder den SQL-Exportstring per VBA Spalte für Spalte zusammenstellen oder per VBA die Spalten einzelnen exportieren.

Wichtig wäre zu wissen, ob du die Abfrage komplett (alle Datensätze) oder die u.U. gefilterte Sicht im Formular exportieren möchtest.

_________________
Gruß Steffen
Gast RDH
Gast


Verfasst am:
10. Jul 2011, 15:42
Rufname:


AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2007

Hallo Steffen,

besten Dank für Deine Antwort. Ich wollte die Datensätze noch über einen Zeitraum im Feld [Meldedatum] in der Abfrage mit zwei Feldern im Formular [datvon] und [datbis] in die Abfrage als Kriterium mit Zwischen [Datvon] Und [Datbis] einschränken, als Hilfsabfrage vorgeschaltet, damit es nicht so komplex und kompliziert wird.

Im Formular sollten / müssen die Daten nicht unbedingt angezeigt werden. Mein Ziel ist es, dem Benutzer über die Haken eine Selektion der Spalten anzubieten und nach Excel zu exportieren. Er soll einfach die Haken setzten und dann auf den Exportbutten drücken und die gewünschten Spalten sind in Excel. Soweit die Theorie.

In den Makrobefehlen habe ich nichts geeignetes gefunden und mit VBA selber schreiben, ist dass so eine Sache. Wie müsste den beispielhaft der Code aussehen, für die ersten drei Spalten zur Auswahl, damit ich mich dann durchhangeln kann.

Mit der Funktion bedingte Formatierung wollte ich dem Benutzer noch zusätzlich in dem Auswahlformular "Export" eine Art Ampel geben, damit er visuell sieht, wenn er einen Haken bei E1 setzt, verändert sich ein E1 zugeordnetets Feld von rot auf grün. An anderer Stelle in der Datenbank habe ich diese Form der Ampel eingebaut und war recht hilfreich.

Vielen Dank vorab für Deine Mühe und Hilfe sowie beste Grüße
Gast RDH
steffen0815
VBA-Programmierer


Verfasst am:
10. Jul 2011, 16:42
Rufname:

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Hallo,
ich kann mir die verschiedensten Varianten der Problemlösung vorstellen, aber keine welche in 3 Sätzen erklärt oder in 5 Zeilen programmiert ist Confused .

Folgende Probleme müssen gelöst werden:
- Zuordnung der Kontrollkästchen zu den jeweiligen Spalten (z.B. über Tag-Eigenschaft)
- Zuordnung der Kontrollkästchen zur "Aufgabe Spaltenauswahl" (z.B. über einen bestimmten Namensteil)
- Erstellung eines SQL-Strings ohne Parameter (Parameter z.B. über Eval auflösen)

Auch eine Variante:
Alles exportieren und dann per (Excel) VBA die Spalten ausblenden/löschen. Dies dürfte sogar die schnellere Variante sein.

Lange Rede kurzer Sinn: Ich muss erst noch mal darüber nachdenken.

_________________
Gruß Steffen
Gast RDH
Gast


Verfasst am:
10. Jul 2011, 18:07
Rufname:

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2007

Hallo Steffen,

vielen Dank für Deine Unterstützung. Ich habe mich hier im Forum in der Rubrik Tipps und Trick noch etwas umgeschaut - auf der Suche nach einer Lösung. Dabei bin ich auf den Beitrag / Demo-Datenbank von Willi Wipp "Variable Anzahl von Feldern im Bericht" vom 22.Januar 2008 gestoßen.

Willi Wipp hat einen Code vorgestellt, der als mögl. Lösung in Frage kommen könnte. An Stelle des DoCmd.OpenReport würde ich mir den Exportbefehl reinkopieren. Soweit ich den Code verstanden und mir die Demo-DB angesehen habe, könnte dies ein Weg sein, auch wenn ich den mittleren Teil nach Else noch nicht ganz verstehe, mir aber in der Demo die jeweilge Abfrage nach der Auswahl ansehe, sind dort nur die Felder sichtbar, die man zuvor im Formular ausgewählt hat. Dies müsste doch eigentlich funktionieren, oder bin ich da auf dem Holzweg?
Vielleicht könnest Du ja einmal einen Blick darauf werfen.
Beste Grüße und nochmals vielen Dank.
RDH

PS.: Das Einstellen des Links will nicht so richtig klappen.
steffen0815
VBA-Programmierer


Verfasst am:
10. Jul 2011, 18:12
Rufname:

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Hallo,
Davon unabhängig hier mal ein Beispiel:
Es gibt ein ungebundenes Exportformular mit CheckBox'en. In der TAG-Eigenschaft (Marke) steht jeweils der Name der zu exportierenden Abfragespalte.

Über einen Befehlsknopf wird der SQL-String erzeugt und über eine Prozedur in einen neue Excelmappe exportiert.

WICHTIG Exclamation :
Das Ganze funktioniert nicht mit Parameterabfragen. Die Parameter müssen in der Abfrage z.B. per Eval aufgelöst werden.
Sh: Textfelder mailen
Code:
Option Compare Database
Option Explicit

Private Sub BefExport_Click()
    Const ExportAbfrage = "NameDeinerAbfrage"
    Dim chk As Control, Felder As String, sSQL As String
   
    For Each chk In Me.Controls
        If TypeOf chk Is CheckBox Then
            If chk = True Then Felder = Felder & "," & chk.Tag
        End If
    Next chk
    If Left(Felder, 1) = "," Then Felder = Mid(Felder, 2)
    If Felder = "" Then
        MsgBox "Nix zu tun"
        Exit Sub
    End If
    sSQL = "SELECT " & Felder & " FROM " & ExportAbfrage
    MsgBox sSQL
    sqlExport2Excel sSQL
End Sub

Sub sqlExport2Excel(sSQL As String)
' VBA-Verweis auf Microsoft DAO x.x
    Dim xlApp As Object, rs As DAO.Recordset
   
    Set rs = CurrentDb.OpenRecordset(sSQL)
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
    xlApp.Workbooks.Add
    xlApp.ActiveWorkbook.ActiveSheet.Cells(1, 1).CopyFromRecordset rs
End Sub

_________________
Gruß Steffen
MissPh!
Office-VBA-Programmiererin


Verfasst am:
10. Jul 2011, 18:36
Rufname:
Wohnort: NRW

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Hallo,

ich habe mir, aufbauend auf Steffens Vorschlag auch mal ein paar Gedanken gemacht und hierbei den Hinweis ausgenutzt, dass die Kontrollkästchen fortlaufend durchnummeriert sind.
Code:
Private Sub btnExport_Click()
    ' Variablendeklaration
    Dim strSQL As String, strFeldliste As String
    Dim qdf As QueryDef
    Dim i As Integer
    ' konstanter Tabellenname für die Abfrage
    Const cTabName As String = "t_Adreßkartei"
   
    ' Feldliste für Abfrage erstellen
    For i = 1 To 12
        If Me("E" & i) Then
            strFeldliste = strFeldliste & ", " & Me("E" & i).Tag
        End If
    Next i
    ' Auswahl vorhanden?
    If Len(strFeldnamen) > 0 Then
        ' Abfragecode zusammensetzten und temp. Abfrage erstellen
        strSQL = "SELECT " & Mid(strFeldliste, 3) & " FROM " & cTabName
        Set qdf = CurrentDb.CreateQueryDef("tmpQ", strSQL)
        Set qdf = Nothing
        ' Export ausführen
        DoCmd.TransferSpreadsheet acExport, , tmpQ, "C:\export\tabelle.xls"
        ' temp. Abfrage löschen
        CurrentDb.QueryDefs.Delete "tmpQ"
      Else
        MsgBox "Es wurde kein Datenfeld ausgewählt!"
    End If
End Sub
(ungetestet!)

Voraussetzungen:
- fortlaufend durchnummerierte Checkboxen (hier E1 - E12)
- der jeweils zugeordnete Feldname je Checkbox ist in der Tag-Eigenschaft (Marke) eingetragen

BTW:
Gast RDH - 10. Jul 2011, 18:07 hat folgendes geschrieben:
Dabei bin ich auf den Beitrag [...] gestoßen.
Beim nächsten Mal gib doch bitte auch gleich den Link zu dem gefundenen Thread oder Beitrag mit an.
_________________
Gruß MissPh!
Gast RDH
Gast


Verfasst am:
10. Jul 2011, 20:48
Rufname:

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2007

Gast RDH am 10. Jul 2011 um 19:59 hat folgendes geschrieben:
Hallo MissPh!,
hallo Steffen,

herzlichen Dank für Eure schnellen und super Antworten. Ich werde die Codes ausprobieren und berichten, wobei ich erst gegen Ende der Woche dazu kommen werde. So wie ich es verstanden habe, sollte es funktionieren.

Nochmals vielen Dank für die engagierte und super schnelle Hilfe.

Herzliche Grüße und ich werde berichten
RDH

Hallo Steffen,

super geil! Herzlichen Dank, es funktioniert so, wie ich es mir vorgestellt habe. Einfach Klasse. Die Damen und Herren, für welche die Datenbank ist, werden genauso begeistert sein, wie ich.

@MissPh! Werde Deine Code auch probieren, dauert aber noch, Feedback folgt.

Herzliche Grüße sowie nochmals besten Dank.
RDH
Gast_Andrea
Gast


Verfasst am:
11. Jul 2011, 16:17
Rufname:

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Wow,
vielen Dank für die Tips Smile Ich war am Wochenende nicht im Internet und konnte erst heute mit den Lösungen experimentieren.

Wenn ich in meiner Anfrage um alle
Code:
[Formulare]![Formularabfrage]![Test]
diese Eval() Funktion packe, bekomme ich leider beim Ausführen meines Formulars die Meldung "Sie haben die vorherige Operation abgebrochen". Ich habe bis dahin noch nichts mit den Kontrollkästchen gemacht.
Habe verschiedene Varianten ausprobiert:
Code:
Eval("[]![]![]")
Eval([]![]![])
Eval(" ! ! ")
Eval( ! ! )
Es kam immer die selbe Fehlermeldung. Hat jemand eine Idee, an was das liegen könnte?

@Steffen0815: Bei deinem Code muss ich nur "NameDeinerAbfrage" umändern oder? Und ist mit diesem Code auch gewährleistet, dass die Abfrage auf verschiedene Tabellen greift? Also kann man tatsächlich eine
Code:
SELECT...FROM Abfrage (nicht nur Tabelle)...WHERE
Abfrage starten.

Danke!
MissPh!
Office-VBA-Programmiererin


Verfasst am:
11. Jul 2011, 16:22
Rufname:
Wohnort: NRW

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Hallo,

Variante 1 bzw. 3 sollte korrekt sein. Zeig doch mal deinen SQL-Code, damit man sieht woran es sonst noch liegen könnte.

_________________
Gruß MissPh!
Gast



Verfasst am:
11. Jul 2011, 16:44
Rufname:

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Hier mal der Code, hab ihn etwas abgespeckt...Sonst wäre er noch umfangreicher ;)
Code:
SELECT   [Map].PLZ, [Map].Ort, [Map].Strasse, [Map].Nennleistung,
         [Bewegung].spezVerguetung, [Bewegung].Volllaststunden,
         [Map].Anlagentyp, [Map].Anlagenuntertyp,  [Map].Inbetriebnahme,
         [Map].Schluessel, [Map].Betreiber, [Map].Beteiligte,
         [Map].Ansprechpartner, [Map].AP, [Map].Kommentar, [Bewegung].Jahr,
         [Bewegung].Einspeisung, [Bewegung].Verguetung, [Map].Validierung
FROM     [Bewegung]
         INNER JOIN Map
         ON [Bewegung].Schluessel = [Map].Schluessel
WHERE    ([Map].Anlagentyp=Eval("[Formulare]![Formularabfrage]![FoAnlagenTyp]")
OR        Eval("[Formulare]![Formularabfrage]![FoAnlagenTyp]")="Alle")
AND      [Map].Nennleistung>=Eval("[Formulare]![Formularabfrage]![FoMinNenn]")
AND      [Map].Nennleistung<=Eval("[Formulare]![Formularabfrage]![FoMaxNenn]")
AND      [Bewegung].spezVerguetung<=Eval("[Formulare]![Formularabfrage]![FoSpezVerg]")
AND      [Bewegung].Volllaststunden>=Eval("[Formulare]![Formularabfrage]![FoVLS]")
AND      Year([Inbetriebnahme])>=Eval("[Formulare]![Formularabfrage]![FoInbetriebmin]")
AND      Year([Inbetriebnahme])<=Eval("[Formulare]![Formularabfrage]![FoInbetriebmax]")
AND      [Map].Schluessel Like "*" & Eval("[Formulare]![Formularabfrage]![FoAnlagenschlüssel]") & "*")
AND      [Map].Betreiber Like "*" & Eval("[Formulare]![Formularabfrage]![SuBetreiber]") & "*")
AND      [Map].Ansprechpartner Like "*" & Eval("[Formulare]![Formularabfrage]![SuAnsprechpartner1]") &
                                    "*, *" & Eval("[Formulare]![Formularabfrage]![SuAnsprechpartner2]") & "*"
ORDER BY Map.Nennleistung DESC;
MissPh!
Office-VBA-Programmiererin


Verfasst am:
11. Jul 2011, 16:47
Rufname:
Wohnort: NRW

AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Hi,

du musst Forms! schreiben, d.h. die englische Syntax verwenden.

_________________
Gruß MissPh!
Gast_Andrea
Gast


Verfasst am:
11. Jul 2011, 17:25
Rufname:


AW: Kontrollkästchen wählt Spalten aus Abfrage aus - AW: Kontrollkästchen wählt Spalten aus Abfrage aus

Nach oben
       Version: Office 2003

Super, das war ja einfach Smile Danke!! Dann kann ich jetzt weitermachen!
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: [DANKE-ERLEDIGT] Join in einer Abfrage 2 Gast 803 01. März 2004, 08:36
ppc [DANKE-ERLEDIGT] Join in einer Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Wie kann ich mehr als 255Felder in eine Abfrage legen? 1 D.R. 2235 12. Feb 2004, 09:05
faßnacht(IT); Wie kann ich mehr als 255Felder in eine Abfrage legen?
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage verlinken 4 dfo 1326 10. Feb 2004, 22:17
Willi Wipp Abfrage verlinken
Keine neuen Beiträge Access Tabellen & Abfragen: Suche Hilfe zu SQL (DAO 351 MS) - Abfrage 3 Berny_H 1005 04. Feb 2004, 11:41
borstel Suche Hilfe zu SQL (DAO 351 MS) - Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage, die sich auf 2 Abfragen + 1 Tabelle bezieht 1 caro456 1832 27. Jan 2004, 20:03
Willi Wipp Abfrage, die sich auf 2 Abfragen + 1 Tabelle bezieht
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage von Datensätzen ohne Inhalt 3 sebwa 2053 23. Jan 2004, 23:19
Gast Abfrage von Datensätzen ohne Inhalt
Keine neuen Beiträge Access Tabellen & Abfragen: Access abfrage nach 2 parametern 1 Weedy 3466 13. Jan 2004, 00:21
reke Access abfrage nach 2 parametern
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage, ob eine Abfrage ein Ergebnis hat 3 Esdo 3934 09. Dez 2003, 15:53
Fedaykin Abfrage, ob eine Abfrage ein Ergebnis hat
Keine neuen Beiträge Access Tabellen & Abfragen: Access 97 Abfrage Duplikate 9 gast 2419 02. Dez 2003, 14:39
Kay Access 97 Abfrage Duplikate
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Abfrage mit VBA 3 daMike 1729 26. Nov 2003, 17:58
daMike SQL Abfrage mit VBA
Keine neuen Beiträge Access Tabellen & Abfragen: Mehrere Datenfelder(Spalten) zu einem Datenfeld zusammenfass 2 werner 1400 20. Nov 2003, 16:18
werner Mehrere Datenfelder(Spalten) zu einem Datenfeld zusammenfass
Keine neuen Beiträge Access Tabellen & Abfragen: WENN Formel in einer Abfrage in ACCESS (erledigt) 2 Roger Büttler 9608 19. Nov 2003, 23:20
Roger Büttler WENN Formel in einer Abfrage in ACCESS (erledigt)
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks