anoniem Geplaatst: 20 november 2002 Delen Geplaatst: 20 november 2002 In een Access2000 tabel heb ik een kolom "datum". Hierin staan data of er staat niets. Nu wil ik d.m.v. een Update-sql deze data kunnen aanpassen. Alles heb ik inmiddels aan het werken, alleen als ik een datum wil verwijdern krijg ik de volgende melding: [quote:89fe6a07ff]Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. [/quote:89fe6a07ff] Ik heb met een "RESPONSE.WRITE(sql)" gekeken en de update-sql die hij genereert is [code:1:89fe6a07ff]datum=''[/code:1:89fe6a07ff] Hij zou dus de dataum moeten update naar een NULL-waarde. In de Access2000 table heb ik ingesteld dat er geen waarde vereist is. Hoe kan dit foutgaan? Quote Link naar reactie
anoniem Geplaatst: 20 november 2002 Auteur Delen Geplaatst: 20 november 2002 [quote:0646159db2="Johant"]Ik heb met een "RESPONSE.WRITE(sql)" gekeken en de update-sql die hij genereert is [code:1:0646159db2]datum=''[/code:1:0646159db2] [/quote:0646159db2] Waarschijnlijk komt onderstaande beter in de buurt: UPDATE tabel SET datum = NULL Quote Link naar reactie
anoniem Geplaatst: 21 november 2002 Auteur Delen Geplaatst: 21 november 2002 Afhankelijk van wat ik invul in een form krijgt de variabele "datum" een datum mee of 3 lege velden (dag, maand, jaar). Deze is altijd in het formaat datum = 'mm/dd/jjjj' Hoe kan ik deze nu een NULL waarde meegeven? Quote Link naar reactie
anoniem Geplaatst: 21 november 2002 Auteur Delen Geplaatst: 21 november 2002 [quote:de563d17d0]Hoe kan ik deze nu een NULL waarde meegeven?[/quote:de563d17d0] Met een if..then...-constructie waarschijnlijk :wink: Zoiezo is het verstandig om formulierdata niet 'blind' in een query te zetten maar eerst te controleren of het is wat je verwacht met het oogpunt vanuit veiligheid en klantvriendelijkheid. Quote Link naar reactie
anoniem Geplaatst: 21 november 2002 Auteur Delen Geplaatst: 21 november 2002 Zover was ik al, maar wat is dan het verschil tussen: datum = '' en datum = NULL Nu heb ik IF datum = '' THEN datum = NULL maar dan wordt de SQL-statement: sql = datum = '" & datum & "' en dit is dus sql = datum = 'NULL' En dat pakt ie dus niet. Quote Link naar reactie
anoniem Geplaatst: 21 november 2002 Auteur Delen Geplaatst: 21 november 2002 [quote:7c5d976d5e]datum = 'NULL' [/quote:7c5d976d5e] Dit werkt niet, omdat je een veel gemaakte fout maakt. Je geeft nu aan het veld 'datum' de string NULL. Dit is een string omdat je het tussen aanhalingstekkens zet. Echter NULL is iets 'specials' en dient niet tussen aanhalingstekens geplaatst te worden. Zie het als een soort functie die het veld leeg maakt. De SQL-string wordt dan: ...datum = NULL... Quote Link naar reactie
anoniem Geplaatst: 4 december 2002 Auteur Delen Geplaatst: 4 december 2002 HEEELLLPPPP!!!!!! :( Ik krijg het niet voor elkaar. Als ik geen datum invoer in het form datumveld, dient er ook niets in de database te komen. Jullie zeggen;ken de speciale NULL - waarde toe aan de variabele datum. Maar als ik zeg: [code:1:e41f2ab705]datum = NULL[/code:1:e41f2ab705] Dan zet ie de NULL in blauwe letters en als ik dan [code:1:e41f2ab705]RESPONSE.WRITE(datum)[/code:1:e41f2ab705] uitvoer krijg ik als resultaat niets en dat pakt ie niet in de sql die bij de update hoort. Hoe los ik dit op? Quote Link naar reactie
anoniem Geplaatst: 5 december 2002 Auteur Delen Geplaatst: 5 december 2002 NULL is ook niets... En eigenlijk toch weer wel. Het is een waarde die aangeeft dat de variabele geen waarde bevat. Een beetje vaag, geef ik gelijk toe. Maar je kan dus controleren of de variabele een waarde bevat. Hoe dit gaat in ASP weet ik niet, maar PHP heeft een functie isset(). Wellicht heeft ASP een equivalent? Maar NULL naar het scherm printen resulteert in niets. - Basje. Quote Link naar reactie
anoniem Geplaatst: 5 december 2002 Auteur Delen Geplaatst: 5 december 2002 Je dient NULL in je [b:62f64d495e]SQL-string[/b:62f64d495e] te zetten zonder aanhalingtekens. Dus bv:[code:1:62f64d495e] UPDATE iets SET datum=NULL WHERE id=3[/code:1:62f64d495e] Je wilt dus de [b:62f64d495e]tabelveld[/b:62f64d495e] [i:62f64d495e]datum[/i:62f64d495e] op NULL zetten! Maar wat heb je nu gedaan (ik doe een gok aangezien je niet je code plaatst :))? Je zet de [b:62f64d495e]variable[/b:62f64d495e] [i:62f64d495e]datum[/i:62f64d495e] op NULL. Blijkbaar kan dit in ASP (nooit geprobeert in PHP :D, ik doe dit altijd met unset()). Als je dan [code:1:62f64d495e]RESPONSE.WRITE(datum)[/code:1:62f64d495e] doet, dan krijg je niets te zien (zoals BasHamar al opmerkte) aangezien je net de [b:62f64d495e]variable[/b:62f64d495e] leeg hebt gemaakt. Vervolgens wil je de [b:62f64d495e]variabele[/b:62f64d495e] [i:62f64d495e]datum[/i:62f64d495e] in je SQL-string zetten om je [b:62f64d495e]tabelveld[/b:62f64d495e] te updaten, maar dit lukt natuurlijk niet. Ik neem aan dat je nu de oplossing wel kan bedenken :wink: . Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen