[VB6] DataGrid binden @ runtime

Pagina: 1
Acties:

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Ik probeer al enige tijd om op een normale manier een DataGrid te binden aan een recordset die in runtime is gemaakt. Op vbCity.com heb ik verschillende voorbeelden overgenomen, maar deze werken niet. Ook bij msdn kom ik niets verder. Op dit forum kan ik ook niets vinden over connectionstring in combinatie met DataGrid.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Public Function rsProductenOpen() As ADODB.Recordset
  Dim cnUniversal As ADODB.Connection
  Dim rsUniversal As ADODB.Recordset
  Dim strSQL As String
  
  strSQL = "SELECT * FROM producten"
  
  Set cnUniversal = New ADODB.Connection
  Set rsUniversal = New ADODB.Recordset 

  With cnUniversal
    If .State <> adStateOpen Then
      .ConnectionString = "c:\mijn documenten\projecten\factuur\db\factuur.mdb" '
      .CursorLocation = adUseClient
      .Provider = "Microsoft.Jet.OLEDB.4.0"
      .Open
    End If
  End With

  With rsUniversal
      .ActiveConnection = cnUniversal
      .CursorLocation = adUseClient
      .CursorType = adOpenDynamic
      .LockType = adLockOptimistic
      .Source = strSQL
      .Open
      If .EOF Then
         MsgBox "No records found to process"
      Else
         .MoveFirst
      End If
   End With

   Set rsProductenOpen = rsUniversal
End Function

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function rsProductenOpen() As ADODB.Recordset
  Dim cnUniversal As ADODB.Connection
  Dim strSQL As String
  
  strSQL = "SELECT * FROM producten"
  
  Set cnUniversal = New ADODB.Connection

  With cnUniversal
    If .State <> adStateOpen Then
      .ConnectionString = "c:\mijn documenten\projecten\factuur\db\factuur.mdb" ' 
      .CursorLocation = adUseClient
      .Provider = "Microsoft.Jet.OLEDB.4.0"
      .Open
    End If
    Set rsProductenOpen = .Execute(SQLstring)
  End With
End Function

code:
1
2
3
4
5
6
7
8
9
10
11
12
Public Function rsProductenOpen() As ADODB.Recordset
  Dim cnUniversal As ADODB.Connection
  Dim strSQL As String
  
  strSQL = "SELECT * FROM producten"
  
  Set cnUniversal = New ADODB.Connection

  cnUniversal.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;CursorLocation=adUseClient;Data Source=c:\mijn documenten\projecten\factuur\db\factuur.mdb;Persist Security Info=False"
  cnUniversal.Open
  Set rsProductenOpen = cnUniversal.Execute(strSQL)
End Function

Deze verschillende manieren heb ik geprobeerd in combinatie met:
code:
1
2
  Set grdProducten.DataSource = Nothing
  Set grdProducten.DataSource = modFactuur.rsProductenOpen


Werkt allemaal niet. Er komt helemaal niets in het grid te staan...

[ Voor 20% gewijzigd door Fles op 22-10-2003 09:53 ]


  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Als je met in runtime een datagrid wilt binden, dan hoef je toch alleen de datasource te koppelen aan een recordset. Of moet je ook nog iets met de datamember doen?

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 15-08 11:47

Sponge

Serious Game Developer

Je zou ook:

.ConnectionString = "c:\mijn documenten\projecten\factuur\db\factuur.mdb"

Eens kunnen proberen met "korte bestandsnamen". Ik heb hier vroeger wel eens problemen mee gehad, met ADO. (spatie = volgende parameter). Weet niet of het hier ook voor op gaat, maar je kan bijv proberen:

.ConnectionString = "c:\mijndo~1\project~1\factuur\db\factuur.mdb"

oid :)

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Ik heb hem eindelijk voor elkaar... Wat een gepruts. Hij werkt nog niet helemaal goed, maar dat komt wel.