Kreuztabelle per SQL-Syntax aus Dotnet heraus erstellen

24/09/2008 - 14:48 von karin weixler | Report spam
Hallo,
ich müsste per Code eine Kreuztabellen-Abfrage in einer Access-Datenbank
erstellen. Kann mir jemand damit weiterhelfen?
Habe es wie folgt, leider erfolglos versucht:
Dim mySQL As String

mySQL = "CREATE VIEW a_w_tmp_ReportVertrag_Kreuz AS " & _

"TRANSFORM Sum(a_w_tmp_reportVertrag_Gruppiert.ZahlGesamt) AS [Summe von
ZahlGesamt] " & _

"Select Case a_w_tmp_reportVertrag_Gruppiert.Gruppe2 " & _

"FROM(a_w_tmp_reportVertrag_Gruppiert) " & _

"GROUP BY a_w_tmp_reportVertrag_Gruppiert.Gruppe2 " & _

"PIVOT a_w_tmp_reportVertrag_Gruppiert.Gruppe1"

Dim myCmd As OleDbCommand

myCmd = New OleDbCommand(mySQL, Me.Connection, myTransaction)

Try

myCmd.ExecuteNonQuery()

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Information, "Datenbank Update")

Return False

End Try

Vielen Dank schon mal.

Schöne Grüße
Karin
 

Lesen sie die antworten

#1 Elmar Boye
25/09/2008 - 10:42 | Warnen spam
Hallo Karin,

karin weixler schrieb:
ich müsste per Code eine Kreuztabellen-Abfrage in einer Access-Datenbank
erstellen. Kann mir jemand damit weiterhelfen?
Habe es wie folgt, leider erfolglos versucht:

mySQL = "CREATE VIEW a_w_tmp_ReportVertrag_Kreuz AS " & _



Zunàchst wàre die Frage, wozu die Abfrage dienen soll?

CREATE VIEW ist nicht identisch mit einer Access Abfrage,
sondern ein (verunglücktes) Konstrukt, das man für ADO
eingeführt hat und hat das gleiche Problem wie:
<URL:http://support.microsoft.com/kb/246213/de>
"PRB: Mit ADOX erstellte Ansichten sind in Access 2000 nicht sichtbar"
(das gilt auch für spàtere Versionen)

Wenn Du also eine "richtige Abfrage", die von Access und
andere Anwendungen verwendet werden soll, die nicht ADO/OLE DB
nutzen, solltest Du die dort genannten Methoden verwenden,
denn dafür gibt es keinen SQL Befehl.

"TRANSFORM Sum(a_w_tmp_reportVertrag_Gruppiert.ZahlGesamt) AS [Summe von
ZahlGesamt] " & _

"Select Case a_w_tmp_reportVertrag_Gruppiert.Gruppe2 " & _



Unabhàngig davon wàre die Syntax fehlerhaft,
die Abfrage solltest Du zunàchst mit Access prüfen.

Gruß Elmar

Ähnliche fragen