Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB] Problema con record

    Ciao a tutti

    Mi hanno incaricato di copiare da un database le citta e da un'altro il cap.....

    e scrivere tutto su un'altro database, ma sono una marea di dati!!!

    allora ho pensato di far fare tutto a VB e diciamo che ci sono riuscito, ma quando non trova un record mi da errore io vorrei fare in modo che se non trova un record passi al successivo

    questo e il codice

    codice:
    Private Sub Command1_Click()
    Dim sSearch As String
    Dim Db As Database
    Dim Rs As Recordset
    If Text1 <> "0" Then
    sSearch = "select * from Comuni where ID = " & Text1 & ""
    Set Db = OpenDatabase(App.Path & "\Comuni97.mdb", False, False)
    Set Rs = Db.OpenRecordset(sSearch)
    Set Data1.Recordset = Rs
    
    Text2 = Rs!COMU_DESCR
    Provincia = Rs!COMU_PROV
    Codice1 = Rs!COMU_COD
    
    
    
    
    Else
    
    Comune = ";-))"
    
    End If
    
    Rs.Close
    End Sub
    
    
    
    
    
    
    
    
    
    Private Sub Text1_Change()
    Dim sSearch As String
    Dim Db As Database
    Dim Rs As Recordset
    If Text1 <> "0" Then
    sSearch = "select * from Comuni where ID = " & Text1 & ""
    Set Db = OpenDatabase(App.Path & "\Comuni97.mdb", False, False)
    Set Rs = Db.OpenRecordset(sSearch)
    Set Data1.Recordset = Rs
    
    Text2 = Rs!COMU_DESCR
    Provincia = Rs!COMU_PROV
    Codice1 = Rs!COMU_COD
    
    
    
    
    Else
    
    Comune = ";-))"
    
    End If
    
    Rs.Close
    End Sub
    
    Private Sub Text2_Change()
    Dim sSearch As String
    Dim Db As Database
    Dim Rs As Recordset
    If Text2 <> "0" Then
     'sSearch = "select * from Comuni where ID = " & Text2 & ""
    sSearch = "select * from Comuni where Comune like '*" & Replace(Text2, "'", "''") & "*'"
    Set Db = OpenDatabase(App.Path & "\Cap.mdb", False, False)
    Set Rs = Db.OpenRecordset(sSearch)
    Set Data2.Recordset = Rs
    
    Comune1 = Rs!Comune
    Provincia1 = Rs!Provincia
    Prefisso1 = Rs!Prefisso
    Capoluogo1 = Rs!Capoluogo
    Catastale1 = Rs!Catastale
    Cap1 = Rs!Cap
    Else
    
    Comune = ";-))"
    
    End If
    
    Rs.Close
    
    Data3.Recordset.AddNew
    
    Data3.Recordset!Comune = Comune1
    Data3.Recordset!Provincia = Provincia1
    Data3.Recordset!Prefisso = Prefisso1
    Data3.Recordset!Capoluogo = Capoluogo1
    Data3.Recordset!Catastale = Catastale1
    Data3.Recordset!Cap = Cap1
    Data3.Recordset!Codice = Codice1
    
    Data3.Recordset.Update
    
    Text1 = [Text1] + 1
    
    
    End Sub
    mi dice "nessun record corrente" ed evidenzia questo

    Comune1 = Rs!Comune

    come posso dire che se non trova il record deve aggiungere 1 a text1 e ripetere la ricerca??

    Grazie mille

    Meglio tacere e dare l'impressione di essere scemo, che aprire la bocca e togliere ogni dubbio



    ...........

  2. #2
    Forse c'è l'ho fatta



    Aggiungendo
    codice:
    ...
    On Error GoTo ErrFas
    
    If Text2 <> "0" Then
     'sSearch = "select * from Comuni where ID = " & Text2 & ""
    sSearch = "select * from Comuni where Comune like '*" & Replace(Text2, "'", "''") & "*'"
    Set Db = OpenDatabase(App.Path & "\Cap.mdb", False, False)
    Set Rs = Db.OpenRecordset(sSearch)
    Set Data2.Recordset = Rs
    
    Comune1 = Rs!Comune
    Provincia1 = Rs!Provincia
    Prefisso1 = Rs!Prefisso
    Capoluogo1 = Rs!Capoluogo
    Catastale1 = Rs!Catastale
    Cap1 = Rs!Cap
    Else
    
    Comune = ";-))"
    
    End If
    
    ErrFas:
    
    Text1 = [Text1] + 1
    ....

    :metallica
    Meglio tacere e dare l'impressione di essere scemo, che aprire la bocca e togliere ogni dubbio



    ...........

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


    dopo che crei il recordset devi controllare se la proprietà EOF e BOF del recordset appena creato sono contemporaneamente TRUE

    oppure se la proprietà recordconut del recordset è = a 0

    codice:
    If Rs.EOF = TRUE AND Rs.BOF = TRUE THEN
       'Comune non trovato
    else
       'Comune trovato
    end if
    oppure:
    codice:
    If Rs.RecordCount = 0 THEN
       'Comune non trovato
    else
       'Comune trovato
    end if
    PS:

    EOF sta per End Of File e ti dice se sei posizionato subito dopo l'ultimo record

    BOF sta per Begin Of File e ti dice se sei posizionato subito prima il primo record

    RecordCount ti dice quanti record ha trovato


  4. #4
    ciao france'...

    per controllare se il valore di un campo del recordset è nullo ti basta scrivere così:
    codice:
    If Not IsNull(Rs!Comune) Then 
       Comune1 = Rs!Comune
    Enf If
    con la parolina magica "IsNull" sai se è nullo quindi per poter assegnare alla variabile Comune1 un valore valido metti davanti il "Not" che ti fa entrare nell'If solo se Rs!Comune ha un valore diverso da "Null"...
    ...forse è una spiegazione un po' contorta, ma spero sia arrivata...:gren:

    notte fra...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Ciao a tutti, e buongiorno!!

    Diciamo che riusciendo ad evitare tra "" quell'errore poi dopo tipo 160 record ne ricevo un'altro "Impossibile Aprire il database" (ma l'ha aperto 160 volte....)

    Allora questa è una soluzione che devo assolutamente trovare...

    vi spiego meglio, ci sono diversi ragazzi in tutta italia che compilano dei database in access inserendo tutte le vie della propia città, questi database tra non molto inizieranno ad arrivare a me, io ho una database (per concessione di qualche buona anima) con tutti i comuni d'italia e le banche, adesso dovrei mettere in relazione il comune con le vie, ma non posso certo ricopiare tutto a MANO!!! altrimenti se mi avessero chiesto di farlo a mano gli avrei detto :sgrat: ( :gren: )

    Quindi questo piccolo programmino che ho fatto serve a fare il lavoro velocemente e bene.
    (e ovvio che quello che sto facendo adesso è ancora una prova)

    Quindi se qualcuno di voi ha una buona banda e vuole scaricarsi i file (3,64 Mb) e magari dargli una controllatina....

    quando avro inserito tutto poi lo metto a disposizione....può essere sempre utile.

    file

    io intanto ci lavoro su

    Grazie mille a tutti

    ciao

    Meglio tacere e dare l'impressione di essere scemo, che aprire la bocca e togliere ogni dubbio



    ...........

  6. #6
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    Originariamente inviato da ladyBlu
    ciao france'...

    per controllare se il valore di un campo del recordset è nullo ti basta scrivere così:
    codice:
    If Not IsNull(Rs!Comune) Then 
       Comune1 = Rs!Comune
    Enf If
    con la parolina magica "IsNull" sai se è nullo quindi per poter assegnare alla variabile Comune1 un valore valido metti davanti il "Not" che ti fa entrare nell'If solo se Rs!Comune ha un valore diverso da "Null"...
    ...forse è una spiegazione un po' contorta, ma spero sia arrivata...:gren:

    notte fra...
    GRAZIE LADYBLU, PROPRIO QUELLO KE STAVO CERCANDO, CORTO MA EFFICACE

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.