Avatar billede jensen363 Forsker
18. marts 2005 - 13:42 Der er 2 kommentarer og
2 løsninger

Flag af ikke behandlede data fra Excel

Denne kodestump udfører import fra en lang række regneark

    Dim Xl As Object
    Dim rsKunde As New ADODB.Recordset
    Dim rsFiler As New ADODB.Recordset
    Dim cn As ADODB.Connection
   
    Set cn = CurrentProject.Connection
    Set Xl = CreateObject("EXCEL.APPLICATION")
    rsKunde.Open "tblKundeoplysninger", cn, adOpenKeyset, adLockOptimistic
    rsFiler.Open "tblFilnavn", cn, adOpenStatic
    Do Until rsFiler.EOF
        Xl.Workbooks.Open rsFiler!filnavn, False, True
        rsKunde.AddNew
        Xl.Sheets("Skabelon").Select
        rsKunde![Aftaledato] = Xl.Range("M1")
        rsKunde!Kundenummer = Xl.Range("A9")
        ......
        ......
        rsKunde.Update
        rsFiler.MoveNext
        Xl.Quit
               
        On Error Resume Next
                                     
    Loop

Som det fremgår, har det været nødvendigt at indføje On Error resume Next, idet ikke alle regneark opfylder mine importbetingelser, men hvilke ????

Denne oplysninger vil jer gerne have returneret i min tblFilnavn, altså et flag for gennemført import.

Hvorledes skal den indbygges i den eksisterende kode ?
Avatar billede sjap Praktikant
18. marts 2005 - 18:15 #1
Jeg kan godt se, at du har klippet lidt i koden, for kun at vise det væsentlige (og det er meget prisværdigt). Jeg ved ikke lige om det er derfor, men jeg synes din "On Error Resume Next" er placeret lidt mærkeligt. Du kunne f.eks. bare placere den INDEN do-løkken - så bliver den kun udført én gang (men er selvfølgelig aktiv i hele forløbet).

Så til di spørgsmål. Det kan måske klares ved at du i stedet bruger

On Error Goto ImportFejl

og nederst i dit program skriver du så

Exit Sub (eller Function)

ImportFejl:
    -kode der sætter flag i tabel
    Resume Next
Avatar billede jensen363 Forsker
20. marts 2005 - 12:47 #2
Virker ikke helt efter hensigten, men har fundet en anden løsning.

Opdaterer tblKundeoplysninger med denne ekstra oplysning :

    rsKunde!filnavn = rsFiler!filnavn

den viser jo alle de filer som er gået godt. I det aktuelle tilfælde har det endvidere den fordel, at dette filnavn giver en unik nøgle i tabellen ... :o)

Sorry for the trouble ...
Avatar billede jensen363 Forsker
20. marts 2005 - 12:47 #3
Læg lige er svar, så får du point
Avatar billede sjap Praktikant
20. marts 2005 - 12:48 #4
OK ;0)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester