PDA

View Full Version : Aiuto sql in visual basic!! "Urgente!!!"


Hypernet
21-08-2005, 14:30
:)
Ragazzi/e mi servirebbe un grandissimo aiuto!
Stò scrivendo un programma di contabilità,ma ho un grossso problema:
ho connesso un database con visual basic in ado e per velocizzare la ricerca dei record,ho usato la stringa sql di seguito riportata.
------------------------
Dim itmX As ListItem
Dim prog As Variant
Dim db As Database
Dim rsStuInfo As Recordset
Dim StrSQL As String
Dim Addsome As Boolean
Dim impb As Integer
Dim absol As Double
'Clears the ListView1 Box
ListView1.ListItems.Clear
lstcerca.Clear
lstcodice.Clear
lstquantita.Clear
lstabsolute.Clear
lstprezzo.Clear
'Creates an SQL string for the search
StrSQL = "SELECT * FROM [Data]"
StrSQL = StrSQL & " WHERE [Descrizione articolo] LIKE '" & txtFName & "*'"
StrSQL = StrSQL & " And [Descrizione articolo] LIKE '" & txtLName & "*'"


'Opens database
Set db = OpenDatabase("C:\Database.mdb")

'Opens recordset which only contains values required
Set rsStuInfo = db.OpenRecordset(StrSQL)

'Add record to the List Box
Do Until rsStuInfo.EOF

Set itmX = ListView1.ListItems.Add()

With rsStuInfo
lstabsolute.AddItem prog
lstcerca.AddItem .Fields("Descrizione articolo")
lstcodice.AddItem .Fields("Codice articolo")
lstquantita.AddItem .Fields("Quantità")
lstprezzo.AddItem .Fields("Prezzo")
itmX.Text = .Fields("Descrizione articolo")
prog = prog + 1
Addsome = True
rsStuInfo.MoveNext
datPrimaryRS.Recordset.MoveLast
absol = db.Recordsets.Count
End With

Loop

If Addsome = False Then
ListView1.ListItems.Add.Text = "Ricerca conclusa"
End If
----------------------------------
Ora! mi servirebbe capire ogni volta che trovo un'articolo,a che posizione nel database si trova,in modo da poter spostare con ado il data sul record che mi interessa modificare(ado.absolutePosiction).
Insomma: Vorrei sapere come fare in sql a trovare l'equivalente dell'AbsolutePosition di ado.
Spero di essere stato chiaro!
Grazie a tutti.

BlueDragon
21-08-2005, 15:37
Ora! mi servirebbe capire ogni volta che trovo un'articolo,a che posizione nel database si trova,in modo da poter spostare con ado il data sul record che mi interessa modificare(ado.absolutePosiction).
Insomma: Vorrei sapere come fare in sql a trovare l'equivalente dell'AbsolutePosition di ado.
Spero di essere stato chiaro!
Grazie a tutti.
Ti premetto che non conosco quasi nulla di Visual Basic, ma mi sembra di capire che tu voglia sapere qual'è la posizione dei record che hai ricercato nel database per andare successivamente a modificarli.
Se è così, ti basta conoscere qual'è la chiave primaria della tabella su cui stai operando. Probabilmente il codice articolo è univoco all'interno di quella tabella, ossia vi è una sola riga con quel codice articolo. Se questo è vero, puoi usare il codice articolo per identificare la riga che ti interessa. Al momento di lanciare la query di UPDATE con l'aggiornamento dati ti basterà inserire la clausola "WHERE [codice articolo] = codiceScelto" per fare in modo che i cambiamenti verranno effettuati sulla riga giusta.
Spero di aver interpretato correttamente il tuo post... :)