Query niet altijd juist

Status
Niet open voor verdere reacties.
Route99... het is heel vriendelijk dat je om een db-tje vraagt maar om zoniets te maken vanuit het totale project is heel moeilijk alleen al omdat er heel veel tabellen in betrokken zijn (en ik de pivacy wil garanderen van degenen die er in voorkomen).. Michel zal dit kunnen beamen... hij heeft mijn project en ik hoop dat hij de oorzaak vindt.
 
Hallo,

Het aanpassen van de records gaat een paar keer goed en dan plots niet meer

Ik paste de code aan naar:

Code:
    Dim dt As Date
    Dim tmp
    Dim aantal As Integer
    Dim RS As Recordset
    dt = DateSerial(Year(g!Beh_datum), Month(g!Beh_datum), Day(g!Beh_datum))
    SQL = "SELECT DATA.*, DATA.KODELANG, DATA.DATUM FROM data WHERE Kodelang= """ & g!KODELANG & """ AND DATUM=CDate(" & CDbl(dt) & ");"
    Set RS = db.OpenRecordset(SQL)

    RS.MoveFirst
    RS.MoveNext
    RS.MoveFirst
    aantal = RS.RecordCount
    Do Until RS.EOF
        RS.Edit
        RS!GETUIGTHER = f!peut
        RS!OFFEUSTHER = f!beh
        RS.Update
        RS.MoveNext
    Loop

telkens ik een record aanklikte in de listbox onderbrak ik vorige code om de waarde van "aantal" te zien en dat was steeds correct (meestal 2)

Ik kies een paar records na mekaar uit de listbox en na een 3 tal keer (het ging steeds goed) verandert de code ook de waarden van de "net-daarvoor-gekozen" rij uit de listbox... aantal blijft 2 maar de code past zeker 3 tot 4 records aan..
Snap er niets van en dit is echt wel foute boel...

Dus... hulp is zeker gewenst

Bedankt
JP
 
Je updatequery loopt inderdaad soms twee records bij te werken, maar dat is eigenlijk wel logisch, gezien de recordselectie die je maakt. Als ik een voorbeeldje in een aparte query zet, bijvoorbeeld deze string:
PHP:
UPDATE DATA SET CODE = "560011", GETUIGTHER = "A", OFFEUSTHER = "A" WHERE Kodelang= "210312490061" AND DATUM=CDate(43227);
en ik verander die query naar een Selectiequery:
PHP:
SELECT CODE, GETUIGTHER, OFFEUSTHER FROM DATA WHERE [Kodelang] = "210312490061" AND [DATUM]=CDate(43227)
Dan komen daar 2 records uit. Ik heb het ID veld er dus bij gezet, omdat dat de unieke waarde is. Jouw query levert dan inderdaad 2 unieke records op. Sowieso zou ik bijwerkqueries altijd maken op basis van het sleutelveld als je maar één record wilt bijwerken. Bij het aanpassen van meerdere records doe je dat uiteraard niet, maar moeten de juiste criteria voor de correcte selectie zorgen.
 
Natuurlijk, dat is het hem...
Als ik de selectie doe kom ik soms uit op 1, soms 2 en soms 3 records... en dat is ook zoals het hoort (binnen eenzelfde datum), alleen wordt er na een paar keer updaten, de vorige datum ook geupdate, en dat is niet zoals het hoort...
de records die de query opleveren zijn zeker niet uniek... bekijk het code-veld en dan zie je dat de records niet identiek zijn
Daarom dat ik de code herschreef zodat ik de waarde van "aantal" telkens in de gaten kan houden... dat zou dan ineens naar bvb 4 moeten gaan, maar dat is niet zo..
Snap er niks van
 
Laatst bewerkt:
Ik ben het formulier ‘een beetje’ aan het verbouwen, gedurende welk proces hij het even prima deed, maar inmiddels niet meer. Nog even geduld dus. Wél één oplossingsrichting: stop met nodeloze subformulieren op een formulier te zetten, zoals je nu dus wel doet. Het maakt het systeem meer dan nodeloos gecompliceerd, en ver boven je oplossingsvermogen. Dat zeg ik, omdat het bij mij ook al aan de grenzen reikt :). Een ‘gewoon’ zelfstandig pop-up formulier is veel makkelijk te maken, doet exact hetzelfde en ziet er exact hetzelfde uit. Kortom: de aangewezen oplossing.
 
Kan ook natuurlijk. een mens zou op den duur de ambitie krijgen om het moeilijkste probleem ooit tegen te komen!!!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan