Avatar billede mvhansen Nybegynder
11. december 2005 - 18:35 Der er 18 kommentarer og
1 løsning

Dato i access

Hej eksperter

Jeg har lavet et program i vb6 som skriver til access mdb
men når jeg sætter dato ind foreksempel

11-12-2005  så bliver det skrevet 03-09-1846

er det noget der skal stilles i access  ?

mvh

mvhansen
Avatar billede terry Ekspert
11. december 2005 - 18:44 #1
Try using date format yyyy-mm-dd when you insert
Avatar billede mvhansen Nybegynder
11. december 2005 - 18:54 #2
Den skriver 04-07-1894  når jeg skriver 2005-12-12


mvh

mvhansen
Avatar billede terry Ekspert
11. december 2005 - 18:58 #3
Can we see some code?
Avatar billede mvhansen Nybegynder
11. december 2005 - 18:59 #4
Af min vb6 program
Avatar billede mvhansen Nybegynder
11. december 2005 - 19:02 #5
Private Sub Insert_Click()
    FileName = "F:\Michael\Visual Basic\Teccon_Projekt_Liste\db\Teccon.mdb"
    Set MyDb = DBEngine.Workspaces(0).OpenDatabase(FileName)
    SQLQuery = "INSERT INTO Teccon ("
    SQLQuery = SQLQuery & "Dato, "
    SQLQuery = SQLQuery & "Kunde, "
    SQLQuery = SQLQuery & "Projektnr, "
    SQLQuery = SQLQuery & "Ordrenr, "
    SQLQuery = SQLQuery & "Beskrivelse, "
    SQLQuery = SQLQuery & "Projekt_opretter) "


    SQLQuery = SQLQuery & "values( "
    SQLQuery = SQLQuery & Dato.Text
    SQLQuery = SQLQuery & ",'" & Kunde.Text & "'"
    SQLQuery = SQLQuery & "," & Projektnr.Text
    SQLQuery = SQLQuery & "," & Ordrenr.Text
    SQLQuery = SQLQuery & ",'" & Beskrivelse.Text & "'"
    SQLQuery = SQLQuery & ",'" & Projekt_opretter.Text & "')"
    MyDb.Execute SQLQuery
    MyDb.Close

   
End Sub
Avatar billede terry Ekspert
11. december 2005 - 19:31 #6
I'm surprised you dont get an error.

SQLQuery = SQLQuery & "values( "'
SQLQuery = SQLQuery & Dato.Text
SQLQuery = SQLQuery & "','" & Kunde.Text & "'"
Avatar billede terry Ekspert
11. december 2005 - 19:32 #7
dates must be inside '' when you INSERT, same as string values
Avatar billede jesperfjoelner Nybegynder
11. december 2005 - 20:05 #8
Hvad med:

...
    SQLQuery = SQLQuery & "#" &  format(Dato.Text,"mm/dd/yyyy") & "#"
...
Avatar billede mvhansen Nybegynder
11. december 2005 - 21:13 #9
Hej jesperfjoelner

Dit svar virker  (SQLQuery = SQLQuery & "#" &  format(Dato.Text,"mm/dd/yyyy") & "#")

Har du meget forstand på vb6, da jeg har oprettet et spørsmål i Visual Basic. 
hvor jeg mangler hjælp til nogle koder til at rettiger i databasen

mvh

mvhansen
Avatar billede jesperfjoelner Nybegynder
11. december 2005 - 21:49 #10
Godt det virker :-)

Jeg er ikke ligefrem en haj til vb6, men jeg kigger lige derover.

Ang. dato'er er reglen jeg at når datoer skal indsættes i tabeller skal man altid bruge det amerikanske datoformat, da det er det SQL-sproger forstår.
Og de skriver jo mm-dd-yyyy.
Avatar billede jesperfjoelner Nybegynder
11. december 2005 - 21:52 #11
Hvis du laver en data-relateret applikation var det måske en mulighed at udvikle det hele i Access? Er der specielle grunde til at du bruger vb6?
Vb6 har naturligvis masser af fordele over Access, men Access har også fordele over vb. Hvis dit program handler om manipulation af data er udvikling ofte meget hurtigere med Access.
Avatar billede mvhansen Nybegynder
11. december 2005 - 22:02 #12
Hej jesperfjoelner


Det var for at prøve at lære vb6.

Kan man lave det i access med textbox hvor man kan indtaste forskellig data og hente de data man skal bruge og rettiger

mvh

mvhansen
Avatar billede jesperfjoelner Nybegynder
11. december 2005 - 22:27 #13
Ja absolut! :-)
Hvis man har en "datacentrisk" applikation som mest af alt manipulerer en database sparer man en del arbejde ved at lave det i Access fremfor VB. VB har flere programmeringsmæssige muligheder, er hurtigere og kan kompileres til en .exe-fil, men kan skal overveje om det er det ekstra arbejde værd.
En Accessdatabase kan laves med en komplet brugerflade, så man næsten ikke kan se at det er lavet i Access og distribueres med en Runtimeversion af Access til personer, som ikke har Access installeret.

Som jeg forstod dit vb-spørgsmål har du en formular med de nævnte felter - Når du indtaster et ID i et tekstfelt og trykker på knappen skal de tilhørende datafindes frem og sættes i alle tekstfelterne?
Avatar billede mvhansen Nybegynder
11. december 2005 - 22:29 #14
Ja er rigtig

mvh
mvhansen
Avatar billede jesperfjoelner Nybegynder
11. december 2005 - 22:35 #15
Har du oprettet en formular med de nævnte felter?
Formularen vil typisk være baseret på hele tabellen.

Hvis du på formularen "form1" har et felt "IDindtast" til at taste et ID og en knap "cmdFindPost".

Så finder man jo dataene frem ved bag knappen at bruge:

Dim SQL as string
SQL = "SELECT * FROM tabel1 WHERE ID = " & me!IDindtast
Me.recordsource = SQL

Form1 er nu kun baseret på den ene post, du har hentet.
Hvis du retter i data rettes tabellen jo automatisk med det samme.
Dvs. du skal ikke selv programmere en opdatering af tabellen.
Avatar billede mvhansen Nybegynder
11. december 2005 - 23:07 #16
har du vb6 så kan jeg ligge programmet på nettet
så kan du se hvordan jeg har lavet det

mvh
mvhansen
Avatar billede jesperfjoelner Nybegynder
11. december 2005 - 23:43 #17
Jeg har det ikke installeret for tiden, men har det liggende.
Jeg kan f.eks. bare kigge på den kompilerede exe.?
Avatar billede terry Ekspert
12. december 2005 - 08:01 #18
Normally when INSERTing into Access then '' should be used. When SELECTing from Access ## should be used, so I find it rather strange that you can use ## to insert. But no problem, whats important is it works.
Avatar billede mvhansen Nybegynder
12. december 2005 - 17:20 #19
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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