Salve a tutti ragazzi.
Stò passando un mio vecchio progetto di un gestionale VB6 in MYSQL dato che voglio usufruire di un DB più performante rispetto ad access ( attualmente utilizzato )
Per connettermi uso ADODB. Ho sbirciato su qualche guida in rete e ho constatato che i comandi per la connessione e la lavorazione dei dati sono gli stessi quindi mi sono adoperato per cambiare le stringhe di connessione e fare qualche piccola modifica al trattamento dei dati. Modificato il Login , funziona ! Modificati i form per inserimento di articoli, clienti, ecc , tutto funzionante !
Vado a modificare i form per la visualizzazione dei DATI e qui succede qualcosa che non riesco a capire, vi posto il codice per essere più chiaro.
codice:
Dim sqlStringaConnessione As String
Set cn = New ADODB.Connection
sqlStringaConnessione = "DRIVER={MySQL ODBC 5.1 Driver};" _
& "SERVER=127.0.0.1;" _
& "DATABASE=wgretail_2011;" _
& "UID=root;" _
& "PWD=59929603;" _
& "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384
cn.Open sqlStringaConnessione
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "ID"
MSFlexGrid1.ColWidth(0) = 1
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "COD PRODOTTO"
MSFlexGrid1.ColWidth(1) = 1200
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "QUANTITA'"
MSFlexGrid1.ColWidth(2) = 1000
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = "GIACENZA"
MSFlexGrid1.ColWidth(3) = 1000
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = "Q MINIMA"
MSFlexGrid1.ColWidth(4) = 1100
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = "PREZZO L1"
MSFlexGrid1.ColWidth(5) = 1200
MSFlexGrid1.Col = 6
MSFlexGrid1.Text = "PREZZO L2"
MSFlexGrid1.ColWidth(6) = 1200
rs.Open "SELECT ID,codprodotto,quantita,giacenza,qminima,prezzol1,prezzol2 FROM articoli", cn, 3, 3
If rs.EOF = False Then
rs.MoveFirst
MSFlexGrid1.FixedRows = 1
MSFlexGrid1.Rows = rs.RecordCount + 1
MSFlexGrid1.Cols = rs.Fields.Count + 1
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 0
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1
MSFlexGrid1.Clip = rs.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)
MSFlexGrid1.Row = 1
Else
GoTo esci
End If
MSFlexGrid1.Visible = True
Set rs = Nothing
cn.Close
Screen.MousePointer = vbDefault
esci:
GST_ERR:
End Sub
Ecco qui, con access questo funzionava , con il passaggio a MYSQL genera un errore qui
codice:
MSFlexGrid1.Row = 1
questo succede perchè qui
codice:
MSFlexGrid1.Rows = rs.RecordCount + 1
a mio parere non riesce a fare il conteggio delle righe nella tabella, infatti andando in DEBUG il valore di rs.RecordCount è -1 mentre invece dovrebbe essere 6
Chiedo il vostro aiuto nuovamente !
Grazie tante e buona serata !