Neuigkeiten:

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

Mobiles Hauptmenü

Abfrage in vorhandene Excel-Datei anfügen

Begonnen von BananaDealer, Dezember 11, 2017, 14:46:16

⏪ vorheriges - nächstes ⏩

Lachtaube

Dann lasse Dir in einer Schleife doch einmal die erwarteten Parameternamen und den Typ anzeigen.
   Dim p

   For Each p In qdf.Parameters
      MsgBox "Name: " & p.Name & vbLf & "Type: " & p.Type
   Next
Grüße von der (⌒▽⌒)

BananaDealer

Zitat von: Lachtaube am Dezember 14, 2017, 13:00:35
Dann lasse Dir in einer Schleife doch einmal die erwarteten Parameternamen und den Typ anzeigen.
   Dim p

   For Each p In qdf.Parameters
      MsgBox "Name: " & p.Name & vbLf & "Type: " & p.Type
   Next


Komischerweise wird der Name mit [Welcher DL?] und Type mit 10 angezeigt. Das Objekt qdf wird doch aber mit der neuen Abfrage, die keine Parameter diesen Namens hat, zugewiesen. Also qdf wird gelöscht und neu zugewiesen.

Set dbe = CreateObject("DAO.DBEngine.120")
   Set db = dbe.OpenDatabase(dbfile)


'parD1 = InputBox("Welches Stardatum?")
'parD2 = InputBox("Welches Enddatum?")

'parDate1 = CDate(parD1)
'parDate2 = CDate(parD2)


  Set qdf = db.QueryDefs("AuswertungGesamt")
   
   

   For Each p In qdf.Parameters
      MsgBox "Name: " & p.name & vbLf & "Type: " & p.Type
   Next
   
   
    'qdf.Parameters![Startdatum] = parDate1
    'qdf.Parameters![Enddatum] = parDate2


    Set rs = qdf.OpenRecordset()


So richtig eingefügt? Ich habe noch etwas mit dem Typecast CDate() ohne Erfolg rumprobiert.

Danke schon einmal!

BananaDealer

Ich hab den Fehler gefunden!
Die Abfrage wurde nicht richtig aufgerufen und es hat, wie durch deinen Kontrollcode Lachtaube gezeigt, die falsche Abfrage aufgerufen, wo das Date-Format den Fehler erzeugt hat ::)

Große Entschuldigung und ein dickes Dankeschön an alle!
Jetzt klappt alles!

Nur eine Kleinigkeit hätte ich noch, sofern sich jemand findet der mir nach diesem Chaos noch helfen mag  :-\

In Access sind die Eigenschaften mit der ID als Schlüssel eingetragen. Diese werden auch in Excel importiert. Ist es möglich das Format oder nur den Textwert der Eigenschaft zu importieren, so dass echte Wörter "ankommen"?

Lachtaube

Das müsstest Du in der Abfrage durch Verknüpfung mit der/den entsprechenden Tabelle(n aufbereiten.

PS: damit der Code nicht endlos wird, könntest Du z. Bsp. eine Funktion für das Laden der Abfragedaten in ein Recordset verwenden.

Vorschlag:'optionale Parameterübergabe: Array(Array(Paramname, ParamValue), Array(...))
Private Function GetRsFromQuery(ByRef db As Object, qname As String, _
                                Optional params As Variant) As Object
   Dim p

   With db.QueryDefs(qname)
      If Not IsMissing(params) Then
         For Each p In params
            .Parameters(p(0)) = p(1)
         Next
      End If
      Set GetRsFromQuery = .OpenRecordset()
   End With
End Function


PPS: Formate musst Du in Excel selbst erstellen, weil Abfragen nur Werte liefern.
Grüße von der (⌒▽⌒)

BananaDealer

Zitat von: Lachtaube am Dezember 14, 2017, 13:52:44
Das müsstest Du in der Abfrage durch Verknüpfung mit der/den entsprechenden Tabelle(n aufbereiten.

PS: damit der Code nicht endlos wird, könntest Du z. Bsp. eine Funktion für das Laden der Abfragedaten in ein Recordset verwenden.

Vorschlag:'optionale Parameterübergabe: Array(Array(Paramname, ParamValue), Array(...))
Private Function GetRsFromQuery(ByRef db As Object, qname As String, _
                                Optional params As Variant) As Object
   Dim p

   With db.QueryDefs(qname)
      If Not IsMissing(params) Then
         For Each p In params
            .Parameters(p(0)) = p(1)
         Next
      End If
      Set GetRsFromQuery = .OpenRecordset()
   End With
End Function


PPS: Formate musst Du in Excel selbst erstellen, weil Abfragen nur Werte liefern.

Alles klar, vielen Dank! Ich werde das mal ausprobieren oder alternativ in Access die Abfrage anpassen :)