none
SHAPE Befehl RRS feed

  • 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))
    Montag, 29. Juni 2009 12:54

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


    Hoffe das Hilft.
    Grüße,

    Robert
    Mittwoch, 1. Juli 2009 11:12
    Moderator

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

    Dienstag, 30. Juni 2009 15:34
    Moderator
  • 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
    Dienstag, 30. Juni 2009 17:19
  • 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


    Hoffe das Hilft.
    Grüße,

    Robert
    Mittwoch, 1. Juli 2009 11:12
    Moderator
  • Hallo Stefan112,

    Hat Dir die Antwort geholfen?

    Grüße,
    Robert

    Dienstag, 14. Juli 2009 07:52
    Moderator
  • HalloStefan112,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.

    Grüße,
    Robert

    Montag, 24. August 2009 15:08
    Moderator