Avatar billede spliid88 Nybegynder
30. november 2010 - 10:42 Der er 8 kommentarer og
1 løsning

Problemer med Date time (excel, access)

Hej!

Jeg har form, hvor jeg henter datoer ind, og vælger datoer. Det virkede da det kun var datoen. Nu skal jeg have added time, og så går det galt.
Funktionen som jeg benyttede før så således ud. Nogle der kan hjælpe med at udvide den med time stamp også?
Andre ting man skal tage højde for?

På forhånd tak.

Public Function ConvertToSqlDate(FunkDato As Date)
'Function converts a date to a SQL-date

    Dim SQLYear, SQLMonth, SQLDay
       
        SQLYear = Year(FunkDato)
        SQLMonth = Month(FunkDato)
        SQLDay = Day(FunkDato)
        If SQLDay < 10 Then
          SQLDay = 0 & SQLDay
        End If
        If SQLMonth < 10 Then
          SQLMonth = 0 & SQLMonth
        End If
       
        ConvertToSqlDate = "#" & SQLMonth & "-" & SQLDay & "-" & SQLYear & "#"

End Function
Avatar billede tjp Mester
30. november 2010 - 11:23 #1
Kan vist gøres lidt kortere:

Public Function ConvertToSqlDate(FunkDato As Date)
'Function converts a date to a SQL-date

  Dim MyDateStr
  MyDateStr = Format(FunkDato, "mm-dd-yyyy hh:mm:ss")
  ConvertToSqlDate = MyDateStr

End Function
Avatar billede spliid88 Nybegynder
30. november 2010 - 11:38 #2
Jeg får følgende fejl:
Run-time error '-2147217900 (80040e14)':
Der en en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket " parkname = 'Peter' AND TableDate = 10-12-2009 10:10:10".

Kan du hjælpe? Det lader til du har styr på skidtet :-)!
Avatar billede spliid88 Nybegynder
30. november 2010 - 11:50 #3
Har lavet formatet om til "dd-mm-yyyy hh:mm:ss", og data står også sådan i access (eks. "12-10-2009 10:10:10").
Avatar billede tjp Mester
30. november 2010 - 12:02 #4
Hov, er det ikke fordi der mangler # på begge sider? De røg lige i farten... :-)

Public Function ConvertToSqlDate(FunkDato As Date)
'Function converts a date to a SQL-date

  Dim MyDateStr
  MyDateStr = Format(FunkDato, "mm-dd-yyyy hh:mm:ss")
  ConvertToSqlDate = "#" & MyDateStr & "#"

End Function

---

Ellers ku du måske evt. undlade ## og smide en TO_DATE() ind i SQL'en?

Fx a la:

"WHERE parkname = '" & DitNavn & "' AND TableDate = TO_DATE(" & ConvertToSqlDate(DinDate)& ",'YYYY-MM-DD HH24:MI:SS')"
Avatar billede spliid88 Nybegynder
30. november 2010 - 12:45 #5
Rigtig mange tak for hjælpen.
Nu får jeg en fejl efter der er hentet fra databasen, så det virker.
Avatar billede spliid88 Nybegynder
30. november 2010 - 12:54 #6
Var måske lidt hurtig. Den giver ikke fejl, men henter heller ikke recorden :-(!
Avatar billede spliid88 Nybegynder
30. november 2010 - 13:11 #7
ligegyldigt hvilket format jeg har det liggende i i Access, skal man åbenbart vælge mm-dd-yyyy hh:mm:ss i sql sætningen.
Nu virker det!

Nice!
Avatar billede tjp Mester
30. november 2010 - 13:18 #8
:-)
Avatar billede spliid88 Nybegynder
13. december 2010 - 13:36 #9
Ja så er der problemer igen :-)! Det virkede ellers godt nok inden jeg konverterede tabellerne til sql serveren.

Jeg har nu flyttet data op på en SQL server og linket tabellerne til Access. Nu fungerer følgende streng ikke mere:

sSQL = "SELECT * From Park WHERE ParkName ='" & sParkName & "' AND TableDate =" & ConvertToSqlDate(dDate) & ""

hvor funktionen er således.

Public Function ConvertToSqlDate(FunkDato As Variant)
'Function converts a datetime to a SQL-date

  Dim MyDateStr
  MyDateStr = Format(FunkDato, "mm-dd-yyyy hh:mm:ss")
  ConvertToSqlDate = "#" & MyDateStr & "#"
End Function

Nogle bud de herrer?
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