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.Recordsetcodice: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 Subcodice: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 SubNella form dei dettagli: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
il problema è che prende sempre lo stesso ID, ora prende il primo su cui cliccocodice: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
Perchè fa così?![]()

Rispondi quotando