Hoe van seconden naar uu:mm:ss

Status
Niet open voor verdere reacties.

Anne-Marie

Gebruiker
Lid geworden
8 sep 2000
Berichten
299
In een oude database staat een numeriek veld tijd (t). Dit blijkt aantallen seconden te bevatten. Ik wil echter graag dit ombouwen naar de notatie uu:mm:ss (tijd). Nu doe ik dit met een bijwerk querie die ik iedere 60 seconden aanpas. Ik gebruik eerst de velden , [m] en waarin ik respectievelijk de uren, minuten en seconden bereken. Later voeg ik deze weer samen tot het gewenste formaat uu:mm:ss. Dit is niet echt gebruikersvriendelijk. Liever zou ik een knopje op een formulier zetten die veld [t] ombouwt naar [tijd]. Heeft iemand een idee hoe dit in een gebeurtenisprocedure kan worden ingebouwd? Alvast bedankt.
 
Je moet voor dat doel het veld van het gegevenstype date meegeven, en niet van het gegevenstype numeriek. Het resultaat v.h. gegevenstype date is een string, en daarmee kun je middels stringmanipulaties sneller je beoogde doel bereiken dan op de manier zoals je die beschrijft met een aantal "hulp" velden.

Dennis.
 
Laatst bewerkt:
Geef eens wat meer info

Als ik het veld van numeriek omzet naar datum ben ik alle waarden kwijt dus kun je wat meer info geven ( voor een gemiddelde leek).
 
Heb geen Access meer op mijn pc draaien, wel VB.

Anne,

Het spijt mij zeer dat ik je niet verder kan helpen. Ik neem aan dat je MS-Access gebruikt. Ik heb het pakket Access namelijk niet meer op mijn pc staan.
Bovendien, werkte ik ook niet zo vrij geregeld met Access.

Ik probeer je nu eigenlijk via een andere weg uit te leggen hoe je het gegevenstype date/time moet gebruiken, zodat je niet meer gebruik hoeft te maken van de 3 extra velden die je creëerde om dat ene bewuste veld (t) uiteindelijk de juiste weergave v.d. tijd te kunnen weergeven.

Ik heb voor hetzelfde doel een korte code in VB(Visual Basic, bijna als VBA) geschreven. Ik weet, dat dit niet je vraag is. Ik wil je hier alleen maar even laten zien hoe ik gebruik maakte van het gegevenstype "date/time".
Eigenlijk om precies te zijn, het gegevenstype Time, want dat wil je tenslotte ook.

Nogmaals, mijn voorbeeld berust op het gebruik van het pakket VB.

Om te beginnen heb ik eerst een Databaseje genaamd tijd1.mdb aangemaakt. Omdat ik dit databaseje toch alleen maar gebruik voor het testen van één veld ,heb ik ook maar één veld alsmede één tabel in dat databasje gedefinieerd. En dat veld heet "tijd" met het gegevenstype time . De naam v.d. tabel is "tblAnne".

Verder heb ik op het Form een tekstvak en een knop geplaatst. Daarbij is het tekstvak aan een zogeheten DAO-control gekoppeld, zodat er een koppeling tussen het tekstvak en het databaseje ontstaat.
Dat werkt als volgt, wanneer er op de knop geklikt wordt, dan wordt de actuele tijd in het tekstvak weergegeven, maar ook het veld "tijd" in het databaseje wordt dan ge-update.

Ik heb dit ook getest en het werkt naar behoren.

Hieronder de code voor het event v.d. knop.

Code:
Private Sub Command1_Click()
     Dim dbMijnDatabase As Database
     Dim rstTijd As Recordset
     Dim strSqlTijd As String
     Dim strActueleTijd As String

     strActueleTijd = Time
     strSqlTijd = "INSERT INTO tblAnne (tijd) VALUES ('" & strActueleTijd & "');"
     Set dbMijnDatabase = OpenDatabase("c:\testdb\tijd1.mdb")
     Set rstTijd = dbMijnDatabase.OpenRecordset("tblAnne", dbOpenTable)
     dbMijnDatabase.Execute strSqlTijd
     Data1.Refresh
     Data1.Recordset.MoveLast
     dbMijnDatabase.Close
End Sub

Nogmaals, sorry hoor. Maar misschien lukt het je verder wel aan de hand van dit stukje informatie om verder in Access te gaan werken. Ik hoop ook dat anderen je misschien kunnen helpen met je vraag.

Groetjes,

Dennis.
 
Laatst bewerkt:
Maak een query die gebasseerd is op de betreffende tabel.

Stel dat het betreffende veld [t] heet zet dan in de query:

Tijd: DateAdd('s';[t];"0")
 
De oplossing

Bedankt. De laatste is de goede oplossing en werkt perfect. Scheelt een hoop werk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan