Avatar billede ugotabe_kidding Nybegynder
04. september 2003 - 11:13 Der er 5 kommentarer og
2 løsninger

Fejl ved manglende dato ved Submit

Jeg har en lang form, hvor brugerne skal vedligeholde en masse data. Der er nogle indtastningsfelter til datoer (som ikke nødvendigvis SKAL udfyldes), men siden returnerer en fejl hvis jeg efterlader datofelterne blanke. Alle date/time-felter er i Access defineret som Required: NO.

Uddrag af koden:
strUpdate = "Update Corp SET "
strUpdate = strUpdate & "CorpName= '" & Request.Form("CorpNameField") & "', "
strUpdate = strUpdate & "CorpDateFounded= '" & Request.Form("CorpDateFoundedField") & "', "
strUpdate = strUpdate & "CorpAccountingYear= '" & Request.Form("CorpAccountingYearField") & "', "
strUpdate = strUpdate & "CorpLastGeneralMeeting= '" & Request.Form("CorpLastGeneralMeetingField") & "', "
strUpdate = strUpdate & "CorpCountry= '" & Request.Form("CorpCountryField") & "', "
strUpdate = strUpdate & "LastChangedInitials= '" & Session("UserName") & "', "
strUpdate = strUpdate & "LastChangeDate= '" & Now & "' "
strUpdate = strUpdate & " Where CorpNo = " & Request.Querystring("id")
' SQL sætning eksekveres
Set rsUpdate = Conn.Execute(strUpdate)

Hvorledes tillader jeg at datofelterne ikke kræver indtastning?

Pft
/U.K.
Avatar billede medions Nybegynder
04. september 2003 - 11:16 #1
strUpdate = "Update Corp SET "
strUpdate = strUpdate & "CorpName= '" & Request.Form("CorpNameField") & "', "
strUpdate = strUpdate & "CorpDateFounded= '" & Request.Form("CorpDateFoundedField") & "', "
strUpdate = strUpdate & "CorpAccountingYear= '" & Request.Form("CorpAccountingYearField") & "', "
strUpdate = strUpdate & "CorpLastGeneralMeeting= '" & Request.Form("CorpLastGeneralMeetingField") & "', "
strUpdate = strUpdate & "CorpCountry= '" & Request.Form("CorpCountryField") & "', "
strUpdate = strUpdate & "LastChangedInitials= '" & Session("UserName") & "', "
strUpdate = strUpdate & "LastChangeDate= Now() "
strUpdate = strUpdate & " Where CorpNo = " & Request.Querystring("id")
' SQL sætning eksekveres
Set rsUpdate = Conn.Execute(strUpdate)

Sådan?

//>Rune
Avatar billede medions Nybegynder
04. september 2003 - 11:19 #2
Hov, sådan:

strUpdate = "Update Corp SET "
strUpdate = strUpdate & "CorpName= '" & Request.Form("CorpNameField") & "', "
strUpdate = strUpdate & "CorpDateFounded= '" & Request.Form("CorpDateFoundedField") & "', "
strUpdate = strUpdate & "CorpAccountingYear= Date(), "
strUpdate = strUpdate & "CorpLastGeneralMeeting= '" & Request.Form("CorpLastGeneralMeetingField") & "', "
strUpdate = strUpdate & "CorpCountry= '" & Request.Form("CorpCountryField") & "', "
strUpdate = strUpdate & "LastChangedInitials= '" & Session("UserName") & "', "
strUpdate = strUpdate & "LastChangeDate= Now() "
strUpdate = strUpdate & " Where CorpNo = " & Request.Querystring("id")
' SQL sætning eksekveres
Set rsUpdate = Conn.Execute(strUpdate)

//>Rune
Avatar billede ugotabe_kidding Nybegynder
04. september 2003 - 11:20 #3
Undskyld at jeg var lidt upræcis...
LastChangeDate virker allerede med ...LastChangeDate= '" & Now & "' "...

Problemet er CorpDateFounded og CorpLastGeneralMeeting, som begge er defineret som date/time-felter i DB, men den vil ikke æde at felterne er blanke..

Ellers tak for den hurtige respons... Håber at du kan hjælpe!?!
Avatar billede medions Nybegynder
04. september 2003 - 11:35 #4
Prøv sådan her så:

strUpdate = "Update Corp SET "
strUpdate = strUpdate & "CorpName= '" & Request.Form("CorpNameField") & "', "
strUpdate = strUpdate & "CorpDateFounded= '" & If Len(Request.Form("CorpDateFoundedField")) = 0 Then Response.Write("00-00-00") & "', "
strUpdate = strUpdate & "CorpAccountingYear= '" & Request.Form("CorpAccountingYearField") & "', "
strUpdate = strUpdate & "CorpLastGeneralMeeting= '" & If Len(Request.Form("CorpLastGeneralMeetingField")) = 0 Then Response.Write("00-00-00") & "', "
strUpdate = strUpdate & "CorpCountry= '" & Request.Form("CorpCountryField") & "', "
strUpdate = strUpdate & "LastChangedInitials= '" & Session("UserName") & "', "
strUpdate = strUpdate & "LastChangeDate= '" & Now & "' "
strUpdate = strUpdate & " Where CorpNo = " & Request.Querystring("id")
' SQL sætning eksekveres
Set rsUpdate = Conn.Execute(strUpdate)

//>Rune
Avatar billede ugotabe_kidding Nybegynder
04. september 2003 - 11:55 #5
Hmm.... Databasen tolker tilsyneladende "00-00-00" som Null eller ???? for det virker ikke... Dog virker det, hvis jeg f.eks. skriver "01-02-03"(altså en gyldig dato)... Men det vil jeg helst undgå.. Det skal være tydeligt for brugeren at datoen ikke er udfyldt korrekt... What to do???
Avatar billede eagleeye Praktikant
04. september 2003 - 11:58 #6
Hvis du vil slette indholdet eller sætte det til blank for kolonnen så skal du bruge NULL det lidt være besværligt (dog på ingen måde svært) med koden da NULL ikke skal havde ' omkring så prøv dette:


if Request.Form("CorpDateFoundedField") = "" then
  strCorpDateFounded = "NULL"
else
  strCorpDateFounded = "'" & Request.Form("CorpDateFoundedField") & "'"
end if
if Request.Form("CorpLastGeneralMeetingField") = "" then
  strCorpLastGeneralMeeting = "NULL"
else
  strCorpLastGeneralMeeting = "'" & Request.Form("CorpLastGeneralMeetingField") & "'"
end if


strUpdate = "Update Corp SET "
strUpdate = strUpdate & "CorpName= '" & Request.Form("CorpNameField") & "', "
strUpdate = strUpdate & "CorpDateFounded= " & strCorpDateFounded & ", "
strUpdate = strUpdate & "CorpAccountingYear= '" & Request.Form("CorpAccountingYearField") & "', "
strUpdate = strUpdate & "CorpLastGeneralMeeting= " & strCorpLastGeneralMeeting & ", "
strUpdate = strUpdate & "CorpCountry= '" & Request.Form("CorpCountryField") & "', "
strUpdate = strUpdate & "LastChangedInitials= '" & Session("UserName") & "', "
strUpdate = strUpdate & "LastChangeDate= '" & Now & "' "
strUpdate = strUpdate & " Where CorpNo = " & Request.Querystring("id")
' SQL sætning eksekveres
Set rsUpdate = Conn.Execute(strUpdate)
Avatar billede ugotabe_kidding Nybegynder
04. september 2003 - 12:03 #7
>> medions - tak for at lede mig på rette vej

>> eagleeye - tak for at levere en copy/paste-løsning, der bare virker 100%

;o)

/U.K.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester