Fout bij converteren

Status
Niet open voor verdere reacties.

Tamara27

Gebruiker
Lid geworden
1 mrt 2010
Berichten
224
Hier weer eens met een vraagje...

Situatieschets:
Ik maak gebruik van een SQL INSERT INTO om de ingevulde gegevens van een ongebonden formulier in de tabellen op te slaan.

Soms geeft hij een foutmelding:
niet alle records in de toevoegquery kunnen worden toegevoegd:
Access heeft 1 veld op null ingesteld ten gevolge van een fout bij het converteren van het type

Dit probleem heb ik alleen maar als ik niet alle velden heb ingevuld. Zijn ze wel netjes ingevuld, geen enkel probleem.

Ik heb al gekeken of de veldeigenschappen hetzelfde zijn, en dit is het geval.
Tevens staat er: lengte nul toegestaan: ja en vereist: nee.
Is er nog iets waar ik op moet letten?

Bedankt!
 
Wordt het record wel toegevoegd? Vaak is dat wel het geval...
Ik gebruik toch liever code onder de knop die de tabel opent en de velden vult:

Code:
With CurrentDb.OpenRecordset("SELECT * FROM tHistorie")
    .AddNew
    !Med_NR = iMed
    !InlogNaam = sInlogNaam
    !Datum = Date
    !Tijd.Value = TimeSerial(Hour(Now()), Minute(Now()), 0)
    !UserID = sUser
    !Veld_ori = sVeld
    !Waarde_Ori = sWaarde_Ori
    !Waarde_Nieuw = sWaarde_Nieuw
    .Update
    .Close
End With
als voorbeeldje...
Hiermee kun je beter controleren wat er in welk veld wordt opgeslagen.
 
Als ik in de foutmelding op "ja" klik, wordt alles toegevoegd...
maar ik zal jouw manier even proberen ;)
Alleen weet ik 1 dingetje niet zo goed :)
de tHistorie slaat op de tabel die ik wil invullen geloof iK?

dank je alvast!
 
Klopt. Je zult de code uiteraard een beetje moeten aanpassen...
De veldnamen zijn bij jou uiteraard anders, en de namen van de formuliervelden moet je uiteraard ook aanpassen.
Als ik de code algemeen opschrijf, ziet het er zo uit:

Code:
With CurrentDb.OpenRecordset("SELECT * FROM [B][COLOR="Blue"][TabelNaam][/COLOR][/B]")
    .AddNew
    ![B][COLOR="blue"]Tabelveld1[/COLOR][/B] =  [B][COLOR="blue"]Me.Formulierveld1.Value[/COLOR][/B]
    ![B][COLOR="blue"]Tabelveld2[/COLOR][/B] =  [B][COLOR="blue"]Me.Formulierveld2.Value[/COLOR][/B]
    ![B][COLOR="blue"]Tabelveld3[/COLOR][/B] =  [B][COLOR="blue"]Me.Formulierveld3.Value[/COLOR][/B]
    .Update
    .Close
End With
 
Nu heb ik 2 codes samengeflanst, 2 bestaande codes.
Hij geeft volgende foutmelding:
ongeldige of niet-gekwalificeerde verwijzing en dit wijst op .Tag

Code:
Dim i As Integer
Dim sTabel As Integer
For i = 1 To 6
    If ("cmbBehandeling" & i) <> "" Then
    sTabel = .Tag
        With CurrentDb.OpenRecordset(sTabel)
            .AddNew
            .Fields(1) = cmbCode
            .Fields(2) = ("cmbBehandeling" & i)
            .Fields(3) = ("txtComplicaties" & i)
            .Update
            .Close
        End With
    End If
Next i

toch ergens iets fout dan?
 
ziehier de code (lichtjes aangepast naar aanleiding van je vorige post :)

Code:
Dim i As Integer
Dim sTabel As String
For i = 1 To 6
    If ("cmbBehandeling" & i) <> "" Then
    sTabel = .Tag
    On Error Resume Next
            With CurrentDb.OpenRecordset(sTabel)
            .AddNew
            !Fields(1) = Me.cmbCode.Value
            !Fields(2) = "Me.cmbBehandeling" & i
            !Fields(3) = "Me.txtComplicaties" & i
            .Update
            .Close
        End With
    End If
Next i

Toch nog steeds de foutmelding:
ongeldige of niet-gekwalificeerde verwijzing, hierbij staat .Tag aangeduid...
 
Heb je misschien een spatie in de tabelnaam staan?
Dan kun je deze aanpassing nog proberen:

sTabel = "[" & .Tag & "]"
 
Misschien een overbodige vraag, maar hij moet toch gesteld:
Heb je bij de combobox de naam van de tabel wel ingevuld bij <Tag> (<Extra Info>) ?
 
Heb hetvolgende ook geprobeerd om de .tag te vermijden (het gaat hier toch over 1 tabel)
maar dit werkt ook niet....

Code:
Dim i As Integer
Dim sTabel As String
For i = 1 To 6
    If ("cmbBehandeling" & i) <> "" Then
    sTabel = GegevensBehandeling
    On Error Resume Next
            With CurrentDb.OpenRecordset(sTabel)
            .AddNew
            !Fields(1) = Me.cmbCode.Value
            !Fields(2) = "Me.cmbBehandeling" & i
            !Fields(3) = "Me.txtComplicaties" & i
            .Update
            .Close
        End With
    End If
Next i
 
Kun je een voorbeeldje posten? Mailen mag eventueel ook, als je dat liever doet?
 
" stuur een prive-bericht " gaat mss ook? :)
tzal wel voor de avond zijn dan, kan hier op het werk niet zippen... :)
 
Weet niet of ik dan een bijlage mee krijg. Als je hem niet kan zippen, kan je hem ook als db verzenden, als je de extensie .mdb verandert naar .txt of zoiets. Live accepteert geen mdb-tjes....
 
Laatst bewerkt:
ok, toch al zo ver dat ik weet waarom de .Tag niet neemt...

Een id die met een punt begint, is alleen geldig binnen een blok With.

maar hoe kan ik hier een with inbouwen?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan