Share via


A Visual Basic Example of Data Shaping

' This application makes use of Microsoft Hierarchical FlexGrid
' Control, which is named as MSHFLexGrid.
Const SHAPER = "MSDataShape"
Const DP = "SQLOLEDB"
Const DS = "MySQLServer"
Const DB = "Northwind"

Private Sub Form_Load()
    FirstExample
End Sub

Private Sub Form_Resize()
    MSHFlexGrid.Top = 0
    MSHFlexGrid.Left = 0
    MSHFlexGrid.Width = Me.ScaleWidth
    MSHFlexGrid.Height = Me.ScaleHeight
End Sub

Private Sub FirstExample()
    Dim con As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim sCmd As String
    
    Set con = New ADODB.Connection
    Set rst = New ADODB.Recordset
    
    con.ConnectionString = ConnectionString(SHAPER, DP, DS, DB)
    con.Open
    
    sCmd = "SHAPE {SELECT CustomerID, ContactName FROM Customers} " _
        & "APPEND ({SELECT OrderID, OrderDate, CustomerID FROM Orders} " _
        & "AS chapOrders " _
        & "RELATE customerID TO customerID)"

    rst.Open sCmd, con, adOpenStatic, 2
    Set MSHFlexGrid.Recordset = rst
    
    rst.Close
    Set rst = Nothing
    
    con.Close
    Set con = Nothing
    
End Sub

Private Function ConnectionString(pr As String, _
                                  dpr As String, _
                                  dsr As String, _
                                  dbs As String)
    Dim s As String
    If pr = "" Then
        s = "Provider=" & dpr & _
          ";Data Source=" & dsr & _
          ";Initial Catalog=" & dbs & _
          ";Integrated Security=SSPI;"
    Else
        s = "Provider=" & pr & _
          ";Data Provider=" & dpr & _
          ";Data Source=" & dsr & _
          ";Initial Catalog=" & dbs & _
          ";Integrated Security=SSPI;"
    End If
    ConnectionString = s
End Function
                                  

Try It!

  1. Create a Visual Basic Standard EXE application project
  2. Select Components from the Project menu in Visual Studio
  3. Select "Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB)" from the Components popup window and click Save.
  4. Double click the FlexGrid Control from the ToolBox pane in the Visual Basic workspace. Change the name of this instance to MSHFLEXGRID.
  5. Copy the code above and paste it into the Code page to replace any existing code.
  6. Select Start from the Run menu to execute the application.