Sviluppare funzionalita su Microsoft Office con VBA "Aggiorna" aggiunge l'aggiornamento nella riga sotto.

Login Registrati
Stai vedendo 8 articoli - dal 1 a 8 (di 8 totali)
  • Autore
    Articoli
  • #18932 Score: 0 | Risposta

    Genci
    Partecipante

      Ciao tutti!

      Ho creato u form per inserimento ed aggiornamento di un database, e mi sono incappato in un ostacolo che non riesco a capire, perché non sono capace, perché accade. con il commando "cerca" vado ad intercettare un "record", e fin qui va bene, forse. quando eseguo una modifica e vado ad "aggiorna", mi copia il record nella riga di sotto, aggiornato. ed io, nel codice, non riesco a capire un commando che faccia scendere giù. Ecco il codice dell'aggiornamento.

      Private Sub CommandButton4_Click()
      
      ''  AGGIORNA
      
      Dim C_N As String
      Dim cf As String
      Dim cognome As String
      Dim Nome As String
      Dim ddn As Variant
      Dim età As Long
      
      
      cf = TxCf.Text
          Cells(currentrow, 2).Value = TxCf.Text
      cognome = txCog.Text
          Cells(currentrow, 3).Value = txCog.Text
      Nome = txNom.Text
          Cells(currentrow, 4).Value = txNom.Text
      ddn = txDdn.Text
          Cells(currentrow, 5).Value = txDdn.Text
      ''età = TxEta.Text
      '    Cells(currentrow, 6).Value = TxEta.Text
      
          
      Cells(currentrow, 1).Value = Cells(currentrow, 3) & ", " & Cells(currentrow, 4) & ", " & Left(Cells(currentrow, 5), 2) & ", " & Mid(Cells(currentrow, 5), 4, 2) & ", " & Right(Cells(currentrow, 5), 4)
      C_N_DDN_search.Text = Cells(currentrow, 1).Value
      
      Cells(currentrow, 17).Value = txCog.Text & ", " & txNom.Text
      Label181 = Cells(currentrow, 17).Value
      
      '' AGGIORNA
      
      End Sub
      #18933 Score: 0 | Risposta

      Genci
      Partecipante

        Questo, invece, è il codice di ricerca.

        Private Sub BUT_CERCA_Click()
        
        Dim UltimaR As Long
        UltimaR = Sheets("TAB").Range("A" & Rows.Count).End(xlUp).Row
        
            C_N_DDN_search = C_N_DDN_search.Text
            
        For currentrow = 2 To UltimaR
        
            If Cells(currentrow, 1).Text = C_N_DDN_search Then
        
        C_N_DDN_search.Text = Cells(currentrow, 1).Value
        TxCf.Text = Cells(currentrow, 2).Value
        txCog.Text = Cells(currentrow, 3).Value
        txNom.Text = Cells(currentrow, 4).Value
        txDdn.Text = Cells(currentrow, 5).Value
        TxEta.Text = Cells(currentrow, 6).Value
        
        End If
        'Next currentrow
        '    C_N_DDN_search.SetFocus
        End Sub
        #18934 Score: 0 | Risposta

        Genci
        Partecipante

          a dire la verità, il comando cerca è stato preso da un altro form, un pulsante che prevedeva la ricerca in avanti per più omonimi, ed un altro pulsante ricerca indietro. La funzione che ho inserito dovrebbe escludere gli omonimi, c_n_ddn sta per cohnome_nome_data di nascita. forse la "tendenza in avanti" del comando è quella che mi frega, ma non saprei se è quella e come "frenarlo". grazie per l'aiuto, e buona giornata.

          #18936 Score: 0 | Risposta

          Genci
          Partecipante

            Errata corrige:

            nell'ultimo post, nel codice in allegato, la penultima riga contenente la stringa "Next currentrow" è "scommentata", nell'originale, quindi in funzione, era rimasta "commentata" durante i tentativi vari.  

            #18940 Score: 0 | Risposta

            Genci
            Partecipante

              Addirittura, ho "scoperto", che quando inserisco un nuovo record, che viene eseguito correttamente, se premo "aggiorna", viene aggiornato il primo record, cioè inserito il nuovo record nella prima riga, oltre che nella prima riga vuota.

              #18982 Score: 0 | Risposta

              Genci
              Partecipante

                Eh, sì, l’ho notato, troppa verve. Mi scuso!

                #19159 Score: 0 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  Genci ha scritto:

                  troppa verve

                  Allega un pezzo di file di esempio con i dati e lo scenario.

                  #19186 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    Genci ha scritto:

                    nell'originale, quindi in funzione, era rimasta "commentata" durante i tentativi vari

                    Aggiungo anche di prestare attenzione all'indentazione del codice, così risulta più leggibile anche a te, e troveresti più facilmente errori come questo (a parte che il compilatore dovrebbe segnalare la situazione del For senza Next).

                    Genci ha scritto:

                    La funzione che ho inserito dovrebbe escludere gli omonimi,

                    Ci sono altri sistemi (con Find metodo di un oggetto Range, per esempio).La ricerca in avanti avviene chiaramente a causa del ciclo For.

                    Comunque mi par di capire che il tuo problema è impostare l'a prima riga utile della base dati dove andare a scrivere il dato aggiornato... in questo caso, guarda come hai confezionato "UltimaR" nel codice del pulsante di ricerca. In pratica ti serve proprio questo prima della scrittura del dato aggiornato.

                  Login Registrati
                  Stai vedendo 8 articoli - dal 1 a 8 (di 8 totali)
                  Rispondi a: "Aggiorna" aggiunge l'aggiornamento nella riga sotto.
                  Gli allegati sono permessi solo ad utenti REGISTRATI
                  Le tue informazioni: