Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Aiuto!

  1. #1

    Aiuto!

    Ciao,
    io ho una combobox e devo fare in modo che quando l'utente scieglie un'opzione si apre la pag o finestra per inserire alcuni dati. come devo fare?
    Alex

  2. #2
    Non iscritto/a
    Registrato dal
    May 2002
    Messaggi
    325

    prova con questo codice dovrebbe andare

    Option Explicit


    Private cnAdo As ADODB.Connection, m_strConn As String
    Private Sub ReLoadCombo()


    Dim Sql As String
    Dim rsAdo As New ADODB.Recordset

    Set cnAdo = New ADODB.Connection
    Combo1.Clear

    m_strConn = "Data Source= " & App.Path & "\prova.mdb" & ";User ID=Admin;Password=;"
    cnAdo.Provider = "Microsoft.Jet.OLEDB.4.0"

    Sql = "SELECT * FROM PROVA"

    cnAdo.IsolationLevel = adXactCursorStability
    cnAdo.Open m_strConn
    If cnAdo.State = adStateOpen Then
    '********************
    With rsAdo
    .ActiveConnection = cnAdo
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .LockType = adLockReadOnly
    .Source = Sql
    .Open
    End With

    If rsAdo.EOF = False Then
    rsAdo.MoveFirst
    Do While Not rsAdo.EOF
    Combo1.AddItem rsAdo!NOME
    'MEMORIZZO L'ID DELLA PERSONA CHE è SEMPRE UNIVOCO PERCHè
    'è UN CAMPO CONTATORE.
    Combo1.ItemData(Combo1.NewIndex) = rsAdo!ID
    rsAdo.MoveNext
    Loop
    End If

    rsAdo.Close
    Set rsAdo = Nothing


    Combo1.Text = txt_nome(0).Text

    End If


    End Sub

    Private Sub RiempiCombo()

    Dim Sql As String
    Dim rsAdo As New ADODB.Recordset

    Set cnAdo = New ADODB.Connection

    m_strConn = "Data Source= " & App.Path & "\prova.mdb" & ";User ID=Admin;Password=;"
    cnAdo.Provider = "Microsoft.Jet.OLEDB.4.0"

    Sql = "SELECT * FROM PROVA"

    cnAdo.IsolationLevel = adXactCursorStability
    cnAdo.Open m_strConn
    If cnAdo.State = adStateOpen Then
    '********************
    With rsAdo
    .ActiveConnection = cnAdo
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .LockType = adLockReadOnly
    .Source = Sql
    .Open
    End With

    If rsAdo.EOF = False Then
    rsAdo.MoveFirst
    Do While Not rsAdo.EOF
    Combo1.AddItem rsAdo!NOME
    'MEMORIZZO L'ID DELLA PERSONA CHE è SEMPRE UNIVOCO PERCHè
    'è UN CAMPO CONTATORE.
    Combo1.ItemData(Combo1.NewIndex) = rsAdo!ID
    rsAdo.MoveNext
    Loop
    End If

    rsAdo.Close
    Set rsAdo = Nothing


    If Combo1.ListCount > 0 Then
    Combo1.ListIndex = 0
    End If

    End If

    End Sub

    Private Sub cmd_Elimina_Click()


    Dim rsAdo As New ADODB.Recordset, IdPersona As Long, Sql As String

    If Combo1.ListCount = 0 Then
    MsgBox "Eliminati tutti"
    Exit Sub
    End If

    If MsgBox("Vuoi eliminare " & Combo1.List(Combo1.ListIndex) & "?", vbQuestion + vbYesNo, App.Title) = vbNo Then
    Exit Sub
    End If

    Set cnAdo = New ADODB.Connection
    cnAdo.Provider = "Microsoft.Jet.OLEDB.4.0"
    'prendo l'id univoco che è nell'itemdata dell'elemento corrente
    IdPersona = Combo1.ItemData(Combo1.ListIndex)
    'faccio una query per trovarlo oppure puoi usare SEEK se è un campo indicizzato
    'o il FINDFIRST.
    Sql = "SELECT ID FROM PROVA WHERE ID = " & IdPersona & ""

    cnAdo.IsolationLevel = adXactCursorStability
    cnAdo.Open m_strConn

    If cnAdo.State = adStateOpen Then
    '********************
    With rsAdo
    .ActiveConnection = cnAdo
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .LockType = adLockOptimistic
    .Source = Sql
    .Open
    End With

    If rsAdo.EOF = False Then 'SE LO TROVA...
    rsAdo.Delete
    Combo1.RemoveItem (Combo1.ListIndex)
    End If

    rsAdo.Close
    Set rsAdo = Nothing

    If Combo1.ListCount > 0 Then
    Combo1.ListIndex = 0
    Else
    Combo1.ListIndex = -1
    End If

    End If

    End Sub

    Private Sub cmd_Inserisci_Click()

    Dim rsAdo As New ADODB.Recordset, I As Integer

    For I = 0 To 1
    If Len(Trim(txt_nome(I).Text)) = 0 Then
    MsgBox "Campo obbligatorio"
    txt_nome(I).SetFocus
    Exit Sub
    End If
    Next

    Set cnAdo = New ADODB.Connection
    cnAdo.Provider = "Microsoft.Jet.OLEDB.4.0"

    cnAdo.IsolationLevel = adXactCursorStability
    cnAdo.Open m_strConn

    If cnAdo.State = adStateOpen Then
    '********************
    With rsAdo
    .ActiveConnection = cnAdo
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .LockType = adLockOptimistic
    .Open ("PROVA"), cnAdo, , , adCmdTable
    .AddNew
    rsAdo!NOME = txt_nome(0).Text
    rsAdo!INDIRIZZO = txt_nome(1).Text
    .Update
    End With

    rsAdo.Close
    Set rsAdo = Nothing

    ReLoadCombo

    End If

    End Sub

    Private Sub Combo1_Click()

    Dim strConn As String
    Dim Sql As String
    Dim IdCliente As Long
    Dim rsAdo As ADODB.Recordset

    Set rsAdo = New ADODB.Recordset

    IdCliente = Combo1.ItemData(Combo1.ListIndex)

    Sql = "SELECT * FROM PROVA WHERE ID = " & IdCliente & ""

    cnAdo.IsolationLevel = adXactCursorStability
    If cnAdo.State = adStateOpen Then
    '********************
    With rsAdo
    .ActiveConnection = cnAdo
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .LockType = adLockReadOnly
    .Source = Sql
    .Open
    End With

    If rsAdo.EOF = False Then
    rsAdo.MoveFirst
    Label1.Caption = rsAdo!NOME
    Label2.Caption = rsAdo!INDIRIZZO
    rsAdo.MoveNext
    End If

    rsAdo.Close
    Set rsAdo = Nothing

    End If

    End Sub


    Private Sub Form_Load()
    RiempiCombo
    End Sub



    Private Sub Form_Unload(Cancel As Integer)

    cnAdo.Close
    Set cnAdo = Nothing

    Unload Me

    End Sub

  3. #3
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212


    per la serie: "Lo faccio iiiiiiiiiiiiiiiiiiiiiiiiiiiiiio il prograaaaaaaaaaaaaaaaaaaaamma!"
    Oriano Ferrari

  4. #4
    Non iscritto/a
    Registrato dal
    May 2002
    Messaggi
    325

    E daiiii!

    Comunque bisogna saperlo applicare!
    E poi.....................insomma ho esagerato lo ammetto
    la prossima volta mi limiterò a dare dei suggerimenti promesso!:tongue:
    Ma perchè poi?:master:

  5. #5
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212



  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    46
    ciao kiva,

    dato ke 6 così 'GENEROSA' nell'elargire codice, mi posteresti qualke piccolo esempio sulla seek in ado (l'argomento non mi è molto chiaro).
    secondo te, avere dei campi indicizzati ed effettuare le ricerche con le 'select * bla.. bla... bla..' è efficace?
    gs

  7. #7
    Non iscritto/a
    Registrato dal
    May 2002
    Messaggi
    325
    Tramite la stringa di SQL (Select.....ecc) seleziono la tabella o le tabelle di un db cui mi interessa tirare sù i dati.
    Secondo me e il metodo più semplice ed efficace per poter "giocare" con i dati!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.