Benutzer mit den meisten Antworten
SHAPE Befehl

Frage
-
Hallo,
ich auf der Suche nach einen Code-Snippet oder einer Anleitung die mir in folgendem Bereich hilft.
2 Tabellen sollen miteinander verknüpft werden und das Ergebnis in einem Data-Report angezeit werden:
Dim Pfad As String
Pfad = App.Path & "\Taucher.mdb"
Set con = New ADODB.Connection
con.CursorLocation = adUseClient
con.Provider = "MSDataShape"
con.Properties("Data Provider") = "Microsoft.Jet.OLEDB.4.0"
con.Properties("Data Source") = Pfad
con.Open
Set tbl3 = New ADODB.Recordset
SQLString = "SHAPE {select * from tempabrechnungkopf WHERE NAME='" & List1.Text & " '} APPEND ({select * from tempabrechnung WHERE name='" & List1.Text & "'} AS rsOrders RELATE name TO name)"
tbl3.Open SQLString, con, adOpenKeyset, adLockOptimistic
Set Tauchabrechnung.DataSource = tbl3
Tauchabrechnung.Show
Allerdings liest diese Abfrage aus der Datenbank nur die erste Tabelle aus und nicht die zweite.
Über Hilfe oder Tipps wäre ich sehr dankbar.- Verschoben Robert BreitenhoferModerator Donnerstag, 10. Juni 2010 11:11 VB6 Interop und Update (aus:Visual Basic (ab Version 2002 / .NET))
Antworten
-
Hallo Stefan112,
Um die Abfrage zu testen ich schlage Dir vor das Du ein Microsoft Hierarchisches FlexTabelle-Steuerelement (Microsoft Hierarchical FlexGrid) auf deine Form ziehst (VB6) und die DataSource-Eigenschaft des Hierarchischen FlexTabelle-Steuerelements auf das konfigurierte ADO-Datensteuerelement setzt.
Hier habe ich ein Beispiel Code der tabellarische Daten anzeigt mit Hilfe dem Hierarchischen FlexTabelle-Steuerelement. Das Beispiel verwendet die sehr bekannte Northwind Datenbank (Nwind.Mdb)
Dim Pfad As String Pfad = "C:\Robert\NWIND.MDB" Set con = New ADODB.Connection con.CursorLocation = adUseClient con.Provider = "MSDataShape" con.Properties("Data Provider") = "Microsoft.Jet.OLEDB.4.0" con.Properties("Data Source") = Pfad con.Open Set tbl3 = New ADODB.Recordset tbl3.StayInSync = False SQLString = "SHAPE {select CustomerID,CompanyName from Customers WHERE CustomerID='" & Text1.Text & "'} APPEND ({select CustomerID,OrderDate from Orders WHERE CustomerID='" & Text1.Text & "'} AS rsOrders RELATE CustomerID TO CustomerID)" tbl3.CursorLocation = ADODB.CursorLocationEnum.adUseClient tbl3.Open SQLString, con, adOpenKeyset, adLockOptimistic Set Fxgrid.DataSource = tbl3 '//Fxgrid ist eine Microsoft Hierarchische FlexTabelle-Steuerelement (Microsoft Hierarchical FlexGrid Control) tbl3.Close con.Close End Sub
Wenn hier alles in Ordnung läuft, der nächste Schritt ist den DataReport bauen, ohne ihm an der Datenbank anbinden, sondern seine DataSource Eigenschaft an der ADO-Datensteuerelement anbinden.http://support.microsoft.com/kb/q190411/
Hier auch noch ein Artikel über ADO SHAPE.
http://www.betav.com/Files/Content/Whitepapers/Getting%20Your%20Data%20into%20SHAPE.htm
Robert
Hoffe das Hilft.
Grüße,- Als Antwort markiert Robert BreitenhoferModerator Montag, 24. August 2009 15:09
Alle Antworten
-
Hallo Stefan112,
Kannst Du bitte sagen was „Tauchabrechnung“ für eine Kontrolle ist?Weil Du mit ADO und den dazugehörigen Steuerelementen zu tun hast, bist Du schon auf das „Microsoft Hierarchical FlexGrid“ (MSHFlexGrid) gestoßen?
Das MSHFlexGrid ist der Nachfolger des altbekannten FlexGrids.
So wie ich weiß ist Das MSHFlexGrid ist aber auch das einzige Control das hierarchische Datensätze anzeigen kann.Sehe auch folgender Artikel der über Verknüpfung von Tabellen innerhalb eines DataSet-Objekts spricht.
http://www.dotnetframework.de/lserver/CodeSampleDetails.aspx?c=2817
Grüße,
Robert
-
Es geht konkret um folgendes:
Ich habe ein Programm zur Abrechnung für Tauchgänge geschrieben. Hier sollen nun mehrere Tauchgänge erfasst werden können. Problem ist das die Datenbank bei 255 Feldern "zumacht". Ich wollte jetzt
1. Tabelle mit allen relevanten Daten zu dem Taucher (Name, Datum, etc.)
2. Tabelle mit allen Tauchgängen
erfassen.
Danach soll das ganze in einem DataReport zusammengefasst und ausgedruckt werden.
Grüße
Stefan112 -
Hallo Stefan112,
Um die Abfrage zu testen ich schlage Dir vor das Du ein Microsoft Hierarchisches FlexTabelle-Steuerelement (Microsoft Hierarchical FlexGrid) auf deine Form ziehst (VB6) und die DataSource-Eigenschaft des Hierarchischen FlexTabelle-Steuerelements auf das konfigurierte ADO-Datensteuerelement setzt.
Hier habe ich ein Beispiel Code der tabellarische Daten anzeigt mit Hilfe dem Hierarchischen FlexTabelle-Steuerelement. Das Beispiel verwendet die sehr bekannte Northwind Datenbank (Nwind.Mdb)
Dim Pfad As String Pfad = "C:\Robert\NWIND.MDB" Set con = New ADODB.Connection con.CursorLocation = adUseClient con.Provider = "MSDataShape" con.Properties("Data Provider") = "Microsoft.Jet.OLEDB.4.0" con.Properties("Data Source") = Pfad con.Open Set tbl3 = New ADODB.Recordset tbl3.StayInSync = False SQLString = "SHAPE {select CustomerID,CompanyName from Customers WHERE CustomerID='" & Text1.Text & "'} APPEND ({select CustomerID,OrderDate from Orders WHERE CustomerID='" & Text1.Text & "'} AS rsOrders RELATE CustomerID TO CustomerID)" tbl3.CursorLocation = ADODB.CursorLocationEnum.adUseClient tbl3.Open SQLString, con, adOpenKeyset, adLockOptimistic Set Fxgrid.DataSource = tbl3 '//Fxgrid ist eine Microsoft Hierarchische FlexTabelle-Steuerelement (Microsoft Hierarchical FlexGrid Control) tbl3.Close con.Close End Sub
Wenn hier alles in Ordnung läuft, der nächste Schritt ist den DataReport bauen, ohne ihm an der Datenbank anbinden, sondern seine DataSource Eigenschaft an der ADO-Datensteuerelement anbinden.http://support.microsoft.com/kb/q190411/
Hier auch noch ein Artikel über ADO SHAPE.
http://www.betav.com/Files/Content/Whitepapers/Getting%20Your%20Data%20into%20SHAPE.htm
Robert
Hoffe das Hilft.
Grüße,- Als Antwort markiert Robert BreitenhoferModerator Montag, 24. August 2009 15:09