Welkom op het forum van startpagina!

Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.

Naar overzicht van alle forums

"Type komt niet overeen"

  • Primus

    Ik heb een subformulier gemaakt met allemaal onafhankelijke velden welke moeten worden weggeschreven in een tabel Ingrepen zodra ik op opslaan klik. Ben nu al een tijd aan het klooien en blijf steeds hangen op 1 fout, nl.: “Fout -2147352571 (80020005) tijdens uitvoering: Type komt niet overeen. Heb met een messagebox eens gekeken wat voor type er gedefinieerd staat = 8 = string. Moet toch goed gaan. Loopt iedere keer als eerste vast op het veld ”mm" vervolgens op de drie selectievakjes. De datatype van mm, duur ischaemie en duur ingreep zijn in de tabel waar de data in wordt weggeschreven alledrie ingesteld als numeriek (lange integer), die van de selektievakjes als ja/nee en die van de overige velden uit het script (va mm) als tekst (met veldlengte = 50 en nullwaarde is toegestaan).

    Soms doorloopt ie het script wel normaal (afhankelijk van de ingevoerde data). Ik ben een beginnend VBA'er, kom er zelf helaas niet uit. Kon het in eerdere onderwerpen ook niet terug vinden. Ziet iemand de fout?

    Private Sub Knop61_Click()

    PatientID = Forms!!

    Set dbs = CurrentProject.Connection

    Set rstOperatie = New ADODB.Recordset

    rstOperatie.Open Source:=“ingrepen”, _

    ActiveConnection:=dbs, _

    CursorType:=adOpenKeyset, _

    LockType:=adLockOptimistic, _

    Options:=adCmdTableDirect

    rstOperatie.AddNew

    rstOperatie(“patiënt_id”) = PatientID

    rstOperatie(“datum”) = Tekst1078.Value

    rstOperatie(“prim_rev”) = Keuzelijst_met_invoervak1097.Value

    rstOperatie(“omschrijving”) = Keuzelijst_met_invoervak36.Value

    rstOperatie(“specificatie”) = Keuzelijst_met_invoervak1082.Value

    rstOperatie(“zijde”) = Keuzelijst_met_invoervak1087.Value

    rstOperatie(“mm”) = Tekst65.Value

    rstOperatie(“incisies”) = Keuzelijst_met_invoervak9.Value

    If Not IsNull(Selectievakje14.Value) Then

    rstOperatie(“overcorrectie”) = Selectievakje14.Value

    End If

    If Not IsNull(Selectievakje21.Value) Then

    rstOperatie(“massetertranspositie”) = Selectievakje21.Value

    End If

    If Not IsNull(Selectievakje23.Value) Then

    rstOperatie(“digastricustranspositie”) = Selectievakje23.Value

    End If

    rstOperatie(“transpositie_tempi”) = Keuzelijst_met_invoervak43.Value

    rstOperatie(“acceptorvaten”) = Keuzelijst_met_invoervak32.Value

    rstOperatie(“duur_ischaemie”) = Tekst38.Value

    rstOperatie(“duur_ingreep”) = Tekst40.Value

    rstOperatie.Update

    rstOperatie.Close

    Set rstOperatie = Nothing

    MsgBox (“Ingreep is ingevoerd”)

    dbs.Close

    Set dbs = Nothing

    End Sub

  • hatim

    Hoe is veld “mm” in de tabel gedefinieerd? Als tekst?

  • Eric

    rstOperatie(“patiënt_id”) = me.PatientID

    rstOperatie(“datum”) = cdate(me.Tekst1078)

    rstOperatie(“prim_rev”) = me.Keuzelijst_met_invoervak1097

    rstOperatie(“omschrijving”) = me.Keuzelijst_met_invoervak36

    rstOperatie(“specificatie”) = me.Keuzelijst_met_invoervak1082

    rstOperatie(“zijde”) = me.Keuzelijst_met_invoervak1087

    rstOperatie(“mm”) = me.Tekst65

    rstOperatie(“incisies”) = me.Keuzelijst_met_invoervak9.

    If Not IsNull(me.Selectievakje14) Then

    rstOperatie(“overcorrectie”) = me.Selectievakje14

    End If

    If Not IsNull(me.Selectievakje21) Then

    rstOperatie(“massetertranspositie”) = me.Selectievakje21

    End If

    If Not IsNull(me.Selectievakje23) Then

    rstOperatie(“digastricustranspositie”) = me.Selectievakje23

    End If

    rstOperatie(“transpositie_tempi”) = me.Keuzelijst_met_invoervak43

    rstOperatie(“acceptorvaten”) = me.Keuzelijst_met_invoervak32

    rstOperatie(“duur_ischaemie”) = me.Tekst38

    rstOperatie(“duur_ingreep”) = me.Tekst40

    Ik heb o.a de datum aangepast…verder moet je even kijken

    bij je keuzelijsten op welke afhankelijke kolom deze zijn ingesteld

    in de meeste gevallen is het zo dat in kolom 1 de sleutel staat.

    Verder moet je even opletten of van de velden selectievelden en combo's de namen bevatten die je werkelijk aanroept. Bij onverbonden velden vraag je de inhoud op van de naam van het veld door te verwijzen naar de naam (eigenschappen/tabblad overige/naam) .

    Bij verbonden velden kan je verwijzen naar de besturingselementbron.

  • Primus

    Ad reactie 1: mm staat ingesteld als numeriek(lange integer)

    Ad reactie 2: heb het script veranderd zoals boven. De keuzelijsten worden ingeladen vanuit het script obv een keuze, dus als de waarde van keuzelijst 1 is bv A dan in keuzelijst 2 de volgende keuzes inladen, heeft keuzelijst 1 de waarde B dan in keuzelijst 2 de volgnde keuzes inladen.

    Heb de DB maar ff online gezet, misschien dat dat iets meer duidelijkheid schept. Hij is te vinden op: htp://www.boxernet.nl/db.zip en het gaat om de tabel “Patiënten” tabblad “Ingrepen”.

    Dit is een subformulier waarvan de data pas moet worden weggeschreven als ik op opslaan klik. Daarna moet ik weer een schoon formulier krijgen en hoef ik de data niet meer te zien. Dit moet vast makkelijker (en foutloos kunnen), ik heb alleen weinig ervaring met VBA. Als iemand ‘de fout’ ziet, hoor ik graag. Suggesties om bovenstaande te realiseren zijn ook welkom.

    Alvast bedankt

  • RV

    Neem aan dat je bedoelt http://www.boxernet.nl/db.zip.

    Je database is blijkbaar beveiligd, code achter je knop in je formulier bekijken resulteert in “Project Locked. Project is unviewable”.

    Haal eerst eens even de beveiliging van je database….

    RV

  • Primus

    Heb geen beveiliging op de database gezet. Heb het op een andere compu geprobeerd en geen problemen ondervonden (ook niet met Alt-F11 te bereiken?). Gebruikers hebben evenveel rechten als beheerders. Maar als tussenoplossing 2 textfiles bij het zipje ingedaan met de scripts. Ook de DB ongecomprimeerd erbij gezet (http://www.boxernet.nl/db.mdb) Moet lukken zo, anders graag vermelding waar ik die beveiliging anders in kan stellen. Alvast bedankt!

    Mvg, Steven

  • RV

    Er schijnt toch echt iets van beveiliging op je database te zitten.

    Kan je niet verder helpen.

    RV