collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 56
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13953
  • stats Beiträge insgesamt: 66364
  • stats Themen insgesamt: 8942
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Abfrage in vorhandene Excel-Datei anfügen  (Gelesen 2926 mal)

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1227
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #30 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
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: BananaDealer

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #31 am: Dezember 14, 2017, 13:15:56 »
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!
 

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #32 am: Dezember 14, 2017, 13:30:13 »
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"?
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1227
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #33 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.
Grüße von der (⌒▽⌒)
 

Offline BananaDealer

  • Access-User
  • *
  • Beiträge: 55
Re: Abfrage in vorhandene Excel-Datei anfügen
« Antwort #34 am: Dezember 14, 2017, 14:00:12 »
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 :)