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.
Ecco qui, con access questo funzionava , con il passaggio a MYSQL genera un errore quicodice: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
questo succede perchè quicodice:MSFlexGrid1.Row = 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 6codice:MSFlexGrid1.Rows = rs.RecordCount + 1
Chiedo il vostro aiuto nuovamente !
Grazie tante e buona serata !![]()

Rispondi quotando