Avatar billede mikkelk Nybegynder
21. december 2004 - 12:33 Der er 1 løsning

Ignorer komma

Jeg bruger følgende kode til at læse en fil ind, hvor posterne er adskilt med nogle gruppenumre og derefter de enkelte felter med liniskift - det fungerer fint, bortset fra når felterne indeholder et komma...så bliver det tolket som et nyt felt - og det skal det ikke! :-) Hvordan håndterer man lige det?

Public Function impTextfile(strFile As String)
Close #1
strFile = "c:\stdImportTest2.STD"
  Dim strInput As String, strConc As String, i As Integer
  Open strFile For Input As #1
  While Not EOF(1)
    Input #1, strInput
    If Trim(strInput) = "DATA" Then
        GOData = True
    ElseIf Trim(strInput) = "END DATA" Then
        GOData = False
    End If
    If GOData = True Then
        If StrGroup = 4305 And i <= 6 Then
            insertStr = insertStr & "'" & Trim(strInput) & "', "
        End If
        If StrGroup = 4306 And i <= 5 Then
            insertStr = insertStr & "'" & Trim(strInput) & "', "
        End If
        If StrGroup = 4377 And i <= 4 Then
            insertStr = insertStr & "'" & Trim(strInput) & "', "
        End If
        If Trim(strInput) = "GROUP 00004305" Then
            If Not Trim(insertStr) = "" Then
                CurrentDb.Execute (Left(insertStr, Len(insertStr) - 2) & ")")
            End If
            StrGroup = 4305
            i = 0
            insertStr = "insert into GROUP4305(601, 101, 95, 599, 600, 1450, 100) values("
        ElseIf Trim(strInput) = "GROUP 00004306" Then
            If Not Trim(insertStr) = "" Then
                CurrentDb.Execute (Left(insertStr, Len(insertStr) - 2) & ")")
            End If
            getRefID = CurrentDb.OpenRecordset("select id from GROUP4305 order by id desc")
                strRefID = getRefID!id
            StrGroup = 4306
            i = 0
            insertStr = "insert into GROUP4306(refid, 2092, 2125, 2165, 2091, 599, 600) values(" & strRefID & ", "
        ElseIf Trim(strInput) = "GROUP 00004377" Then
            If Not Trim(insertStr) = "" Then
                CurrentDb.Execute (Left(insertStr, Len(insertStr) - 2) & ")")
            End If
            getRefID = CurrentDb.OpenRecordset("select id from GROUP4306 order by id desc")
                strRefID = getRefID!id
            StrGroup = 4377
            i = 0
            insertStr = "insert into GROUP4377(refid, 1884, 622, 100, 445, 1114) values(" & strRefID & ", "
        Else
            i = i + 1
        End If
    End If
  Wend
  Close
End Function
Avatar billede mikkelk Nybegynder
21. december 2004 - 13:58 #1
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