PDA

Visualizza la versione completa : Mettere il contenuto di una query in un AddItem (VB)


xit
10-07-2002, 17:54
strSQL = "SELECT * FROM Staff WHERE Cognome= '" & iCognome & "'"
Vorrei mettere qui tutti i campi della tabella staff solo dove
Cognome= '" & iCognome & "'"
in questa listbox, facendo come faccio io vedete sotto me li
carica tutti
ListCognome.AddItem dbRec!Cognome & vbTab & dbRec!Nome & vbTab &
dbRec!Ruolo

Mosajko
11-07-2002, 08:04
Dim i as Integer
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=MSDASQL; Data Source=MIO_DSN; Database=MIO_DSN; User Id=; Password=; Security Info=True"
cn.Open

Set rs = cn.Execute("SELECT * FROM MIA_TABELLA WHERE cognome = '" & var_cognome &"'" & ")
rs.MoveFirst

i=0

While Not rs.EOF
Mia_ListBox.AddItem rs.Fields(i).value
rs.MoveNext
Wend

Ciao

Mosajko
11-07-2002, 08:08
Ovviamente devi utilizzare ADO

xit
11-07-2002, 10:03
ERRORE:Mi dice che il record corrente corrisponde all'inizio o alla
fine del file oppure stato eliminato.Per eseguire l'operzione
necessario disporre di un record corrente
dbRec.MoveFirst ----------->




Private Sub txtCognome_LostFocus()
txtCognome.Text = UCase(txtCognome.Text)
txtCognome.Text = Replace(txtCognome.Text, " ", " ", 1, -1)

Dim dbConn As New ADODB.Connection
Rem Dim strConnectionString As String
Dim strSQL As String
If txtCognome.Text = "" Then
MsgBox "Inserisci i campi obblibatori * mancanti", vbInformation
Exit Sub
End If

g_strConnectionString = "maia"


'Apro una connessione con il database
dbConn.ConnectionString = g_strConnectionString

dbConn.Open
Dim dbRec As New ADODB.Recordset
dbRec.Open "Staff", dbConn, adOpenForwardOnly, adLockOptimistic, -1
Dim bRes As Boolean

bRes = controllacognome(iCognome, dbConn)

If bRes = True Then
Beep
MsgBox ("Dati gi presenti")
dbConn.Close
Set dbConn = Nothing

Else

Dim i As Integer

Set dbRec = dbConn.Execute("SELECT * FROM Staff WHERE Cognome= '" & iCognome & "'")
dbRec.MoveFirst ----------->
i = 0
While Not dbRec.EOF
ListCognome.AddItem dbRec.Fields(i).Value
dbRec.MoveNext
Wend
dbRec.Close
Set dbRec = Nothing
dbConn.Close
Set dbConn = Nothing

End If

End Sub

riky78
11-07-2002, 10:39
togli pure quella riga di codice

xit
11-07-2002, 10:41
Adesso l'ho tolta non fa niente il programma

Private Sub txtCognome_LostFocus()
txtCognome.Text = UCase(txtCognome.Text)
txtCognome.Text = Replace(txtCognome.Text, " ", " ", 1, -1)

Dim dbConn As New ADODB.Connection
Rem Dim strConnectionString As String
Dim strSQL As String
If txtCognome.Text = "" Then
MsgBox "Inserisci i campi obblibatori * mancanti", vbInformation
Exit Sub
End If

g_strConnectionString = "maia"


'Apro una connessione con il database
dbConn.ConnectionString = g_strConnectionString

dbConn.Open
Dim dbRec As New ADODB.Recordset
dbRec.Open "Staff", dbConn, adOpenForwardOnly, adLockOptimistic, -1
Dim bRes As Boolean

bRes = controllacognome(iCognome, dbConn)

If bRes = True Then
Beep
MsgBox ("Dati gi presenti")
dbConn.Close
Set dbConn = Nothing

Else

Dim i As Integer

Set dbRec = dbConn.Execute("SELECT * FROM Staff WHERE Cognome= '" & iCognome & "'")

i = 0
While Not dbRec.EOF
ListCognome.AddItem dbRec.Fields(i).Value
dbRec.MoveNext
Wend
dbRec.Close
Set dbRec = Nothing
dbConn.Close
Set dbConn = Nothing

End If

End Sub

riky78
11-07-2002, 10:48
scusa, ne abbiamo parlato ieri ma non ricordo bene...
ControllaCognome controlla se il cognome esiste? se ritorna False significa che non c'? In questo caso se dopo esegui quell'istruzione SQL ovviamente non ti ritorna nessun record....

Johnny_Depp
11-07-2002, 10:56
E' un errore che conosco!!!!!!!!!!

Ma ora non ricordo da cosa provocato

CMQ prova ad aggiungere questo nel ciclo WHILE - WEND



While Not rs1.EOF
For i = 0 To rs.Fields.Count - 1
................................
Next i
rs.MoveNext
Wend

Poi fammi sapere se hai risolto

Johnny_Depp
11-07-2002, 10:59
Dovrebbe funzionare anche il primo LISTATO
che ti ho inviato ma mi sono dimenticato di

INCREMENTARE i

i=0
While
......
......
......
i=i+1
rs.MoveNext
Wend

Loading