Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

VB6 gegevens opslaan in DB

meneer_ed
8 antwoorden
  • Ik heb een functie gemaakt voor het wegschrijven van parameters naar een DataBase, volgens mij heb ik wel de juiste codes gebruikt maar toch geeft hij nog altijd fouten, kan iemand helpen???

    Public Function SchrijfParameter_Naar_DB(Waarde As Variant, Veldnaam As String, Tabelnaam As String, ID_Parameternaam As String, ID_parameterValue As Variant) As Boolean
    Dim TBl As ADODB.Recordset
    Dim Paramervalue As String
    Dim sqlstring As String
    Exit Function
    On Error GoTo SchrijfParameter_Naar_DB_Error

    If Open_Connection = True Then
    Set TBl = New ADODB.Recordset
    TBl.CursorLocation = adUseClient
    sqlstring = "SELECT " & Veldnaam & " FROM " & Tabelnaam & " WHERE " & ID_Parameternaam & " = " & ID_parameterValue & " ORDER BY DatumUuraangepast DESC,datumuurgemaakt DESC;"
    TBl.Open sqlstring, Connection, adOpenKeyset, adLockPessimistic
    Call ChangeDBConnectionCounter(True)
    If TBl.BOF = True And TBl.EOF = True Then
    TBl.Close
    Call ChangeDBConnectionCounter(False)
    SchrijfParameter_Naar_DB = False
    Exit Function
    End If
    If TBl.RecordCount > 0 Then
    TBl.MoveFirst
    TBl.Fields(Veldnaam) = Waarde
    TBl.Update
    SchrijfParameter_Naar_DB = True
    End If
    TBl.Close
    Call ChangeDBConnectionCounter(False)
    End If


    Als ik mijn recordset wil update geeft hij een fout, dan zal hij naar zijn SchrijfParameter_Naar_DB_Error gaan?? ik snap niet goed waarom?

    mvg
  • Het zou handig zijn als je de foutmelding ook even meldt, maar ik vermoed dat je quotes om de waarde moet plaatsen in deze regel:[code:1:48139ae171] sqlstring = "SELECT " & Veldnaam & " FROM " & Tabelnaam & " WHERE " & ID_Parameternaam & " = " & ID_parameterValue & " ORDER BY DatumUuraangepast DESC,datumuurgemaakt DESC;" [/code:1:48139ae171]
    en wel hier:[code:1:48139ae171] sqlstring = "SELECT " & Veldnaam & " FROM " & Tabelnaam & " WHERE " & ID_Parameternaam & " = " & chr$(34) & ID_parameterValue & chr$(34) & " ORDER BY DatumUuraangepast DESC,datumuurgemaakt DESC;" [/code:1:48139ae171]
  • dit is de errorhandling die er eigenlijk nog achter moest staan. Mr ik snap je antwoord niet zo goed? sorry, mr kan je een klein beetje info bijgeven?

    TBl.Update
    SchrijfParameter_Naar_DB = True
    End If
    TBl.Close
    Call ChangeDBConnectionCounter(False)
    End If

    On Error GoTo 0
    Exit Function

    SchrijfParameter_Naar_DB_Error:

    ' MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure SchrijfParameter_Naar_DB of Module Mod_Database"
    Select Case ErrorhandlingDB(Err.Number, "Mod_Database.SchrijfParameter_Naar_DB", Err.Description)
    Case 1: Resume
    Case 2: Resume Next
    Case 3: Exit Function
    Case 4: 'Special Instructions
    End Select

    End Function
  • ik heb het geprobeerd zoals je schreef maar dit lost ook niks op
    volgende foutmelding kreeg ik:
    er zijn onvoldoende sleutelkolomgegevens, of deze zijn onjuist. te veel rijen zijn door het bijwerken beïnvloed…
    het lijkt wel of ik niet in de tabel geraak??
  • Doe eens een Debug.Print sqlstring, nadat je deze gevuld hebt. Wat wordt er dan getoond?
    Je komt denk ik wel in de tabel, maar ik denk dat de query niet goed is.
  • dit krijg ik zoals jij het zei:
    SELECT UnitStatus FROM Tbl_Werkdata WHERE ID = "2" ORDER BY DatumUuraangepast DESC,datumuurgemaakt DESC;

    Dit was mijn sqlstring:
    SELECT UnitStatus FROM Tbl_Werkdata WHERE ID = 2 ORDER BY DatumUuraangepast DESC,datumuurgemaakt DESC;
    Hier is toch niet veel mis mee? en als ik deze invul in MySQL-browser dan werkt deze perfect. alleen bij het update geeft hij dan een fout
  • Met je query is inderdaad niks mis, en er hoeven ook geen quotes in. Ik heb even gezocht op je foutmelding, en ik kwam deze site tegen. Ik heb de discussie globaal gelezen, maar volgens mij komt het er op neer dat je in je select statement ook de primary key mee moet nemen. Blijkbaar kan er anders niet worden bepaald welk record bijgewerkt moet worden.
    Met de query [code:1:68fec5c7c2] sqlstring = "SELECT " & ID_Parameternaam & ", " & Veldnaam & " FROM " & Tabelnaam & " WHERE " & ID_Parameternaam & " = " & ID_parameterValue & " ORDER BY DatumUuraangepast DESC,datumuurgemaakt DESC;"[/code:1:68fec5c7c2]zou het dus moeten werken, en dan neem ik aan dat ID_Parameternaam in deze query de primary key is van de tabel.
  • ja, het werkt! heeeeeeel hard bedankt!!!!!

    mvg

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.