Avatar billede ralley Nybegynder
27. oktober 2002 - 02:16 Der er 24 kommentarer

Definering af datoformat ved oprettelse

Hvordan sætter jeg datoformatet for et felt når jeg opretter en tabel??

CREATE TABLE CD(
Release date not null);

Ovenstående sætter det kun til et datofelt, men selvformatet skal være kortformat.

Hvordan gør man det?
Avatar billede mugs Novice
27. oktober 2002 - 07:42 #1
Koden opretter en ny tabel med navnet "tabel1", tilføjer 6 felter og angiver forskellige felttyper. Desuden skriver VBA tabellens egenskaber til fejlfindingsvinduet. Hvis der er tale om en midlertidig tabel, der skal slettes igen efter brug, skal du blot slette apostrofferne ved de sidste 2 linier. Koden er afprøvet i en Access97 og fungerer. Læg din e-mail hvis du vil have den tilsendt:

Dim datoformat As Database
Dim tdfNew As TableDef
Dim prpLoop As Property
Set datoformat = OpenDatabase("datoformat.mdb")
Set tdfNew = datoformat.CreateTableDef("tabel1")
With tdfNew
.Fields.Append .CreateField("tekst", dbText)
.Fields.Append .CreateField("meno", dbMemo)
.Fields.Append .CreateField("dato", dbDate)
.Fields.Append .CreateField("tal", dbInteger)
.Fields.Append .CreateField("tal1", dbLong)
.Fields.Append .CreateField("tal2", dbDouble)
Debug.Print "Egenskaber til det nye TableDef-objekt " & "inden det føjes til samlingen:"
For Each prpLoop In .Properties
On Error Resume Next
If prpLoop <> "" Then Debug.Print "    " & prpLoop.Name & " = " & prpLoop
On Error GoTo 0
Next prpLoop
datoformat.TableDefs.Append tdfNew
Debug.Print "Egenskaber ved det nye TableDef-objekt " & "efter at være føjet til samlingen:"
For Each prpLoop In .Properties
On Error Resume Next
If prpLoop <> "" Then Debug.Print "    " & _
prpLoop.Name & " = " & prpLoop
On Error GoTo 0
Next prpLoop
End With
' datoformat.TableDefs.Delete "tabel1"
' datoformat.Close
Avatar billede mugs Novice
27. oktober 2002 - 07:47 #2
Hvis du ikke vil skrive til fejlfindingsvinduet, skal de blot se sådan ud:

Dim datoformat As Database
Dim tdfNew As TableDef
Dim prpLoop As Property
Set datoformat = OpenDatabase("datoformat.mdb")
Set tdfNew = datoformat.CreateTableDef("tabel1")
With tdfNew
.Fields.Append .CreateField("tekst", dbText)
.Fields.Append .CreateField("meno", dbMemo)
.Fields.Append .CreateField("dato", dbDate)
.Fields.Append .CreateField("tal", dbInteger)
.Fields.Append .CreateField("tal1", dbLong)
.Fields.Append .CreateField("tal2", dbDouble)
datoformat.TableDefs.Append tdfNew
End With
' datoformat.TableDefs.Delete "tabel1"
' datoformat.Close
Avatar billede proaccess Nybegynder
27. oktober 2002 - 08:46 #3
Hvis du med dato-format mener måden Access viser din dato i tabelvisning, så er det IKKE noget du kan ændre via SQL!

Den interne værdi er uændret, så hvis du vil "nøjes med" at bruge SQL til din Access-database må du formatere værdien ved udtræk fra databasen... (i dit klient-program)
Alternativt kan du jo gå i design-visning (I selve Access) af din nyoprettede tabel og ændre formatet dér)
Avatar billede proaccess Nybegynder
27. oktober 2002 - 08:48 #4
>mugs: tillykke med 4. pladsen i Databaser (som hovedkategori), du kommer frem i verden...  ;0)
Avatar billede mugs Novice
27. oktober 2002 - 08:50 #5
proaccess > godmorgen, det kan godt være, at jeg skyder gråspurve med kanoner, så vidt jeg kan se, opretter min procedüre et datofelt, hvor formatet som standard sættes til kort datoformat. Det kan godt være du har ret, at brugeren kun vil have SQL i db.
Avatar billede mugs Novice
27. oktober 2002 - 08:52 #6
proacces > Tak skal du have. Men se dig i spejlet, så vil du vide af hvem jeg bl.a. har lært. Jeg prøver blot at give lidt af dette videre.
Og blinde høns finder jo også korn!
Avatar billede terry Ekspert
27. oktober 2002 - 09:21 #7
as proaccess says, the way the database stores the date is ALWAYS the same it is only the visual  representation which you can alter for either entry (input mask) or displaying (format) and the regional settings also has a lot to play here.
The regional settings define how your date formats actually display the date. So in fact you can alter the regional settings to display the date differently.
Avatar billede terry Ekspert
27. oktober 2002 - 09:22 #8
and congratulations on 4th place mugs, I'd better watch my a... :o)
Avatar billede mugs Novice
27. oktober 2002 - 09:25 #9
Goodmorning terry > Thank's. I don't think You have to care about Your a... But who knows. Keep up your work, and maybe in 10 - 20 years.
Avatar billede terry Ekspert
27. oktober 2002 - 09:37 #10
Well proaccess is certainly going to have to watch his :o)
Avatar billede mugs Novice
27. oktober 2002 - 09:39 #11
YES :o)
Avatar billede ralley Nybegynder
27. oktober 2002 - 20:04 #12
Jeg er ked af at sige det, men det er udelukkende SQL jeg er ude efter.  Der for brugte jeg Access forummet istedet for ASP.  Skulle nogen ligge inde med en løsning så giver det 200 point.
Avatar billede mugs Novice
27. oktober 2002 - 20:06 #13
Så må proaccess's være det korrekte!!!
Avatar billede ralley Nybegynder
27. oktober 2002 - 20:08 #14
Øv
Avatar billede mugs Novice
27. oktober 2002 - 20:13 #15
Sådan er livet - Jeg vil dog tilføje, at mit svar også er korrekt. Men du har formuleret dit spørgsmål forkert, idet du ikke understreger, at du udelukkende er interesseret i løsninger, der bygger på SQL.

Så proaccess og undertegnede skal dele dine point uanset om du kan bruge vore løsninger eller ej.

Dette indlæg er kun ment som en understregning af, hvor vigtigt det er at formulere et spørgsmål korrekt, og dette skal ikke være en pointjagt, så jeg vil se bort fra mine :o)
Avatar billede ralley Nybegynder
27. oktober 2002 - 20:20 #16
Hvis jeg ville have haft ASP, så havde jeg stillet spg. i en ASP gruppe.  Derfor blev spg. stillet i Access da jeg ikke kunne finde en SQL gruppe.  Der er grupper nok for andre former for SQL, men da MS ikke holder sig til standard SQL valgte jeg Access gruppen.
Avatar billede mugs Novice
27. oktober 2002 - 20:23 #17
ralley > Nu skal vi ikke "pin-hugge" ordene. Men hvis du havde formuleret dit spørgsmål på en måde, som understregede at der var tale om ASP / SQL, havde jeg ikke brugt 15 - 20 min. imorges på at grave en korrekt løsning frem. :o)
Avatar billede ralley Nybegynder
27. oktober 2002 - 20:25 #18
Helt klart.
Avatar billede mugs Novice
27. oktober 2002 - 20:36 #19
Flg. link er fundet ved at søge på dato i kategorien MS SQL. Måske kan det give dig noget til at komme videre på:

http://www.eksperten.dk/spm/273545
Avatar billede terry Ekspert
28. oktober 2002 - 08:42 #20
ralley, the same applies to SQL Server, the DATE is saved in the database in the same format.
WHEN you select from the database the you should use the US date format.

MM-DD-YYYY or YYYY-MM-DD.

So IF you use SQL to select a date from Access then your SELECT should look like this.
SELECT SomeField from MyTable WHERE SomeField = #2002-10-28#

NOW, if we go BACK to your ORIGINAL QUESTION. "Definering af datoformat ved oprettelse"

Even IF you had created the question in ASP the answer would be the same IF we are using Access. AND 200 points doesnt help the answer is the same!
Avatar billede terry Ekspert
14. december 2002 - 15:42 #21
ralley>This question has been open long enough and you have received a correct answer, even though youmay not be happy with it.
So please respond to this question, or admin is getting informed!
Avatar billede terry Ekspert
18. december 2002 - 16:05 #22
ralley>admin has now been informed :o)
Avatar billede dmcn Praktikant
18. december 2002 - 16:10 #23
ralley : At svaret ikke er hvad du havde håbet, berettiger dig ikke til at undlade at kommentere/acceptere korrekte svar. Du har 5 dage, derefter deaktiveres din bruger uden varsel.
- n0rmality, coadmin
Avatar billede dmcn Praktikant
26. december 2002 - 17:33 #24
ralley deaktiveres.
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

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