Hejsan Ersätter det enkla med dubbla: Man får tacka för svaren men jag har nu suttit ett tag och försökt att få det här att funka men inte då. Om det är många poster i filen som du skall läsa in är det bättre att öppna databasen utanför loopen och istälet för att skicka SQL satser använda ditt recordset: Hej Jag är nästan 100% säker på att du kör vb 5. Replace() funktionen saknas i vb 5. Lass till i vb 6. Om så är fallet får du då använd:  Tog du även med den senaste SQLText funktionen. Har ändrat från Replace till MyReplace. Vilket felmeddelande får du? Hej  Hej  Om du tittat i funktionen SQL Text ser du att den omger värdet med ' så du behöver inga ' i dina sql satser. Du ska heller inte omge tal med SQLText om du har några numeriska värden. Hej  Du kan ju skaffa mig en flickvän som tack. Har jag inte lyckas med. Hej Fel vid läsning textsträng som innehåller apostrof
    
    
Jag la in den senaste MyReplace i formen.
Jag får fel medelande 3075 Syntax error (missing operator) in query expression när jag kör  insert into eller update databasen om textsträngen innehåller apostrofer eller enkel fnuttar.
Hur kommer man förbi detta!
Hälsningar 
Tobbe
Ps! Sv: Fel vid läsning textsträng som innehåller apostrof
    
    
Function SQLText(Value)
    If Len(Value) > 0 Then
        SQLText = "'" & Replace(Value, "'", "''") & "'"
    Else
        SQLText = "Null"
    End if
End function
Dim strSQL as String    
Dim strText as String
    strText = "Denna sträng innehåller '-tecknet"
    strSQL = "INSERT INTO TabellNamn (FältNamn) VALUES (" & SQLText(strText) & ")"Sv: Fel vid läsning textsträng som innehåller apostrof
    
    
Här är koden som jag försöker att få till med era koder.
Dim iFil As Long
   Dim tmpStr As String
       Set cGlobal = New Collection
    
   'öppnar filen
   iFil = FreeFile
   Open Label1.Caption For Input As iFil
   
   Do Until EOF(iFil)
   'läser rad för rad
      Line Input #iFil, tmpStr                  'läser in värdt i var tmpStr
       'kontrollerar att raden inte är kommenterad, att det inte är en radbrytning eller tom
       If Not (Left(Trim(tmpStr), 1) = "'" Or tmpStr = vbCrLf Or Trim(tmpStr) = "") Then
             'gör det du ska
   
   Text1(0).Text = Mid(tmpStr, 6, 6) 
   Text1(1).Text = Mid(tmpStr, 34, 36) 
   Text1(2).Text = Mid(tmpStr, 176, 24) 
   Text1(3).Text = Mid(tmpStr, 70, 27) 
       
    Dim dbs As Database
    Dim SQL As String
    Dim rs As Recordset
    Set dbs = OpenDatabase(Label2.Caption, False)
Set rs = dbs.OpenRecordset("select ID from Grund where  MedID ='" & Text1(0).Text & "'", dbOpenSnapshot)
    Do While Not rs.EOF
        txtID.Text = rs!Id & vbNullString
        rs.MoveNext
      Loop
If rs.RecordCount = 0 Then
  SQL = "INSERT INTO GRUND (MedID, Namn, Adress, Telefon)" & _
 "      values ('" & Text1(0).Text & "','" & Text1(1).Text & "','" & Text1(2).Text & "', '" & Text1(3).Text &  "')"
dbs.Execute SQL
End If
If rs.RecordCount = 1 Then
SQL = "UPDATE Grund SET MedId = '" & Text1(0).Text & "'," & _
"                                       Namn = '" & Text1(1).Text & "'," & _
"                                       Adress = '" & Text1(2).Text & "'," & _
"                                       Telefon = '" & Text1(3).Text & "'" & _
" where ID =" & txtID.Text
dbs.Execute SQL
End If
 rs.Close
 dbs.Close
 Set rs = Nothing
 Set dbs = Nothing
 
        End If
   Loop
   
   Close #iFil
Jag verkar inte fatta var koden skall ligga!!!!
Hälsningar 
TobbeSv: Fel vid läsning textsträng som innehåller apostrof
    
    
<code>
Dim db As Database
Dim rs As Recordset
Dim QDef As QueryDef
Dim parMedID As Parameter
Dim FileNo As Long
Dim strLine As String
Dim strTemp As String
Dim strMedID As String
Dim strNamn As String
Dim strAdress As String
Dim strTelefon As String
    Set db = OpenDatabase(Label2.Caption, False)
    Set QDef = db.CreateQueryDef("", "PARAMETERS MedID Long; SELECT * FROM Grund WHERE Grund.MedID = MedID;")
    Set parMedID = QDef.Parameters("MedID")
    
    parMedID = Null
    Set rs = QDef.OpenRecordset(dbOpenDynaset)
    'öppnar filen
    FileNo = FreeFile
    Open Label1.Caption For Input As FileNo
   
    Do Until EOF(FileNo)
        'läser rad för rad i variabel strLine
        Line Input #FileNo, strLine
        strTemp = Trim(strLine)
       
        If Left(strTemp, 1) = "'" Then 'kontrollerar att raden inte är kommenterad
        ElseIf Len(strTemp) > 0 Then 'kontrollerar att raden inte är tom
        Else
            'Hämtar värden från rad
            strMedID = Mid(strLine, 6, 6)
            strNamn = Mid(strLine, 34, 36)
            strAdress = Mid(strLine, 176, 24)
            strTelefon = Mid(strLine, 70, 27)
            
            parMedID.Value = strMedID
            rs.Requery QDef
            
            If rs.EOF Then
                'Om saknas lägg till
                rs.AddNew
                rs("MedID") = strMedID
                rs("Namn") = strNamn
                rs("Adress") = strAdress
                rs("Telefon") = strTelefon
                rs.Update
            Else
                'Uppdatera befintliga
                Do Until rs.EOF
                    rs.Edit
                    rs("Namn") = strNamn
                    rs("Adress") = strAdress
                    rs("Telefon") = strTelefon
                    rs.Update
                    rs.MoveNext
                Loop
            End If
        End If
    Loop
   
    Close #FileNo
    rs.Close
    Set rs = Nothing
    
    db.Close
    Set db = Nothing
</code>Sv: Fel vid läsning textsträng som innehåller apostrof
    
    
Nu har jag testat men får Run-time error '13'
på detta.
Function SQLText(Value)
    If Len(Value) > 0 Then
        SQLText = "'" & replace(Value, "'", "''") & "'"
    Else
        SQLText = "Null"
    End If
End Function
Kan detta bero på att apostrofer inte finns i alla textsträngar?
Mvh
TobbeSv: Fel vid läsning textsträng som innehåller apostrof
    
    
<code>
Function SQLText(Value)
    If Len(Value) > 0 Then
        SQLText = "'" & MyReplace(Value, "'", "''") & "'"
    Else
        SQLText = "Null"
    End If
End Function
Function MyReplace(ByVal Expression As String, ByVal Find As String, ByVal Replace As String, Optional ByVal Start As Long = 1, Optional ByVal Count As Long = -1, Optional ByVal Compare As VbCompareMethod = vbBinaryCompare) As String
Dim lPos As Long
Dim lCount As Long
Dim lLastPos As Long
Dim lFindLength As Long
Dim sResult As String
    lPos = InStr(Start, Expression, Find, Compare)
    If lPos Then
        lLastPos = Start
        lFindLength = Len(Find)
        Do While lPos And (Count = -1 Or lCount < Count)
            If lPos > lLastPos Then
                sResult = sResult & Mid$(Expression, lLastPos, lPos - lLastPos) & Replace
            Else
                sResult = sResult & Replace
            End If
            lCount = lCount + 1
            lLastPos = lPos + lFindLength
            lPos = InStr(lLastPos, Expression, Find, Compare)
        Loop
        If lLastPos <= Len(Expression) Then
            sResult = sResult & Mid$(Expression, lLastPos)
        End If
        
        MyReplace = sResult
    Else
        MyReplace = Expression
    End If
End Function
</code>Sv: Fel vid läsning textsträng som innehåller apostrof
    
    
Japp jag använder vb5 skulle det gå bättre i vb6, för jag testade med senaste inlägget men det blir fel ialla fall.
Jag gör säkert ett generalknas någonstans som vanligt!!!!.
Men måste ialla fall tacka för visat intresse. 
Mvh
Tobbe och go´natSv: Fel vid läsning textsträng som innehåller apostrof
    
    Sv: Fel vid läsning textsträng som innehåller apostrof
    
    
Jag får syntax error 3075 (missing operator)in query expression'MedId = "Tor513"'.
I sökning MedID.
Men i medlems nummret finns inga apostofer men i namn kan det förekomma apostofer i namnet som läses från textfilen.
Hälsningar 
TobbeSv: Fel vid läsning textsträng som innehåller apostrof
    
    
Här är hela koden utöver din kod om MyReplace som vi skrev.
dom har jag lagt i form samma som den här koden.
Dim iFil As Long
Dim tmpStr As String
Set cGlobal = New Collection
'öppnar filen
iFil = FreeFile
Open Label1.Caption For Input As iFil
Do Until EOF(iFil)
'läser rad för rad
Line Input #iFil, tmpStr 'läser in värdt i var tmpStr
'kontrollerar att raden inte är kommenterad, att det inte är en radbrytning eller tom
If Not (Left(Trim(tmpStr), 1) = "'" Or tmpStr = vbCrLf Or Trim(tmpStr) = "") Then
'gör det du ska
Text1(0).Text = Mid(tmpStr, 6, 6) 
Text1(1).Text = Mid(tmpStr, 34, 36) 
Text1(2).Text = Mid(tmpStr, 176, 24) 
Text1(3).Text = Mid(tmpStr, 70, 27) 
Dim dbs As Database
Dim SQL As String
Dim rs As Recordset
Set dbs = OpenDatabase(Label2.Caption, False)
Set rs = dbs.OpenRecordset("select ID from Grund where MedID ='" & SQLText
 (Text1(0).Text) & "'", dbOpenSnapshot)
Do While Not rs.EOF
txtID.Text = rs!Id & vbNullString
rs.MoveNext
Loop
If rs.RecordCount = 0 Then
SQL = "INSERT INTO GRUND (MedID, Namn, Adress, Telefon)" & _
" values ('" & SQLText (Text1(0).Text) & "','" & SQLText (Text1(1).Text) & "','" & SQLText (Text1(2).Text) & "', '" & SQLText (Text1(3).Text) & "')"
dbs.Execute SQL
End If
If rs.RecordCount = 1 Then
SQL = "UPDATE Grund SET MedId = '" & SQLText (Text1(0).Text) & "'," & _
" Namn = '" & SQLText (Text1(1).Text) & "'," & _
" Adress = '" & SQLText (Text1(2).Text) & "'," & _
" Telefon = '" & SQLText (Text1(3).Text) & "'" & _
" where ID =" & txtID.Text
dbs.Execute SQL
End If
rs.Close
dbs.Close
Set rs = Nothing
Set dbs = Nothing
End If
Loop
Close #iFil
/TobbeSv: Fel vid läsning textsträng som innehåller apostrof
    
    Sv: Fel vid läsning textsträng som innehåller apostrof
    
    
Jag är skyldig dig ett stort tack ändrade och det funkar perfect.
:-) Tobbe :-)Sv: Fel vid läsning textsträng som innehåller apostrof
    
    
   ;O)Sv: Fel vid läsning textsträng som innehåller apostrof
    
    
Skall ut och leta hör av mig om jag får napp.
Hälsningar 
Tobbe