Apro una nuvoa discussione in quanto il problema dell'esportazione/conflitto è, se vogliamo, risolto.
Ecco il mio progetto:
Ricapitoliamo:
codice:
Option Explicit
Dim Conn As ADODB.Connection
Dim StringaConn As String
Dim SQL As String
Dim Rs As ADODB.Recordset
Dim Sub_Rs As ADODB.Recordset
codice:
Private Sub Form_Load() con questo popolo la DataGrid con TUTTI i RECORD (ma solo alcuni campi)
Set Conn = New ADODB.Connection
Set Rs = New ADODB.Recordset
StringaConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database.mdb;Persist Security Info=False"
Conn.Open StringaConn
lbl_username.Caption = Username
SQL = "SELECT ID, Societa, Nome, Cognome, Telefono_1, Cellulare, Mail, Notes FROM Agenda"
With Rs
.ActiveConnection = Conn
.CursorLocation = adUseServer
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Properties("IRowsetIdentity") = True
.Open SQL, , , , adCmdText
End With
Set dgr_agenda.DataSource = Rs
dgr_agenda.Columns(0).Width = 500
dgr_agenda.Columns(1).Width = 2000
dgr_agenda.Columns(2).Width = 1500
dgr_agenda.Columns(3).Width = 1500
dgr_agenda.Columns(4).Width = 1500
dgr_agenda.Columns(5).Width = 1500
dgr_agenda.Columns(6).Width = 2000
dgr_agenda.Columns(7).Width = 2500
dgr_agenda.MarqueeStyle = 3
End Sub
codice:
Private Sub cmd_cerca_Click() ora, per esempio, stò modificando i dati contenuti nella DataGrid
Dim Cerca As String
Set Rs = New ADODB.Recordset
Cerca = txt_cerca.Text
SQL = "SELECT ID, Societa, Nome, Cognome, Telefono_1, Cellulare, Mail, Notes FROM Agenda WHERE 1=1"
SQL = SQL & " AND Societa LIKE '%" & Cerca & "%' "
SQL = SQL & " OR Nome LIKE '%" & Cerca & "%' "
SQL = SQL & " OR Cognome LIKE '%" & Cerca & "%' "
SQL = SQL & " OR Telefono_1 LIKE '%" & Cerca & "%' "
SQL = SQL & " OR Cellulare LIKE '%" & Cerca & "%' "
SQL = SQL & " OR Mail LIKE '%" & Cerca & "%' "
SQL = SQL & " OR Notes LIKE '%" & Cerca & "%' "
With Rs
.ActiveConnection = Conn
.CursorLocation = adUseServer
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Properties("IRowsetIdentity") = True
.Open SQL, , , , adCmdText
End With
Set dgr_agenda.DataSource = Rs
dgr_agenda.Columns(0).Width = 500
dgr_agenda.Columns(1).Width = 2000
dgr_agenda.Columns(2).Width = 1500
dgr_agenda.Columns(3).Width = 1500
dgr_agenda.Columns(4).Width = 1500
dgr_agenda.Columns(5).Width = 1500
dgr_agenda.Columns(6).Width = 2000
dgr_agenda.Columns(7).Width = 2500
dgr_agenda.MarqueeStyle = 3
MsgBox "Ricerca effettuata.", vbOKOnly, "Avviso"
End Sub
codice:
Private Sub dgr_agenda_dblClick() con questo, infine, dovrei passare la variabile alla form_dettagli
ID_Agenda = dgr_agenda.Columns("ID").Value
frm_agenda_dettaglio.Show
End Sub
Nella form dei dettagli:
codice:
Private Sub cmd_esci_Click()
ID_Agenda = "" 'questa messa o meno non cambia nulla..
frm_agenda_dettaglio.Hide
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set Rs = Nothing
Set Conn = Nothing
End Sub
il problema è che prende sempre lo stesso ID, ora prende il primo su cui clicco
Perchè fa così?