PDA

View Full Version : [VB6]Problema connessione a db access


Gogeta ss4
09-01-2007, 14:22
Ciao a tutti, ho un problema quando da vb6 mi collego al db access.
Ecco il codice:



Option Explicit
Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Private Sub cmd_accedi_GotFocus()
Dim username, password As String
If txt_username.Text <> "" And txt_password <> "" Then
username = txt_username.Text
password = txt_password.Text
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database\conto_corrente.mdb;Persist Security Info=False"
rs.Open "SELECT * FROM utenti WHERE username = '" & username & "' AND password = '" & password & "'"

Rem ado_conto.RecordSource = "SELECT * FROM utenti WHERE username = '" & UserName & "' AND password = '" & Password & "'"
Rem ado_conto.Refresh

If rs.RecordCount > 0 Then

MsgBox "Accesso effettuato con successo", vbOKOnly + vbExclamation, "Successo"
frm_accesso.Hide
frm_panoramica.Show

Else

MsgBox "Username o password errati!", vbOKOnly + vbExclamation, "Errore"

End If
End If
End Sub



L'errore me lo da sulla rs.open e mi dice: "Connessione chiusa o non valida in questo contesto, impossibile utilizzarla per eseguire l'operazione"

Dove sbaglio? :mbe:

0rph3n
09-01-2007, 14:39
quando invochi il metodo open dell'oggetto recordset devi passare oltre alla query la connessione che vuoi utilizzare (o in alternativa una stringa di connessione):

rs.Open "SELECT * FROM utenti WHERE username = '" & username & "' AND password = '" & password & "'", cn


'iao

Gogeta ss4
09-01-2007, 15:22
Grazie, cmq subito dopo che avevo postato mi sono accorto.
Mentre ci sono posto l'altro problema.

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim count As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database\conto_corrente.mdb;Persist Security Info=False"
rs.Open "SELECT * FROM banche, conto_corrente WHERE id_utente = " & id_utente & " AND conto_corrente.id_banca = banche.id_banca", cn, 1
txt_nome.Text = rs("nome").value
txt_cogn.Text = rs("cognome").value
txt_num.Text = rs("id_conto").value
txt_banca.Text = rs("denominazione").value
lbl_salatt.Caption = rs("saldo").value
sql = "SELECT * FROM azioni WHERE id_conto = " & txt_num.Text & ""
Set rs = cn.Execute(sql)
Set grid_spese.DataSource = rs
grid_spese.Columns(0).DataField = rs("descrizione")
grid_spese.Columns(0).Caption = "Descrizione"
grid_spese.Columns(0).Width = 5350
grid_spese.Columns(1).DataField = rs("tipo")
grid_spese.Columns(1).Caption = "Tipo"
grid_spese.Columns(1).Width = 1400
grid_spese.Columns(2).DataField = rs("data")
grid_spese.Columns(2).Caption = "Data"
grid_spese.Columns(2).Width = 1400
grid_spese.Columns(3).DataField = rs("Importo")
grid_spese.Columns(3).Caption = "Importo"
grid_spese.Columns(3).Width = 1400


Quando fa la Set grid_spese.DataSource = rs mi dice che è impossibile assegnare segnalibri al gruppo di righe :confused: :confused:

Grazia ancora :)