Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

VB6: Database info vergaren

Laurens
4 antwoorden
  • Hi Folks,

    Ik heb een routine'tje waarmee ik alle tabelnamen kan achterhalen uit een Access-database dmv OpenSchema, geen punt.

    Maar hoe kom ik er nou bijv. achter wat voor een Format gebruikt wordt in een bepaalde kolom (veld).

    Ik wil datums in precies dezelfde Format tonen als in de database.
    Hoe kom ik via VB6 aan zulk soort database-gegevens?


    Bedankt voor je tijd!

    Rob
  • O JA!
    Ik gebruik ADO in combinatie met .mdb bestanden.

    ROB
  • Datums worden, vooropgesteld dat je gebruik maakt van het datatype date, niet opgeslagen in een dd-mm-jjjj vorm maar als een numerieke waarde die jij naar elk willekeurig datumformaat kunt omzetten. Dat je ze in access in een dd-mm-jjjj vorm gepresenteerd krijgt zegt niets over de wijze van opslag.

    Het getoonde formaat zal waarschijnlijk afhankelijk zijn van je local settings in Windows. M.a.w. als je in je vb-programma je datum wilt laten weergeven zoals access dat doet zul je het datumformaat op moeten pikken zoals windows dat doet.
    Dit kun je als volgt doen.

    Maak een nieuwe module aan met daarin de volgende code:
    [code:1:a4eeb4c957]
    Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long

    Public Function LeesDatumFormaat() As String

    Const strFunctie = "LeesDatumFormaat"
    Const LOCALE_SLONGDATE = &H20; ' long date format string
    Const LOCALE_SSHORTDATE = &H1F; ' short date format string

    Dim strResultaat As String
    Dim lngResultaat As Long

    On Error GoTo ErrorHandler

    LeesDatumFormaat = ""

    strResultaat = Space(255)

    lngResultaat = GetLocaleInfo(0, LOCALE_SSHORTDATE, strResultaat, 255)
    strResultaat = Left(strResultaat, lngResultaat)

    LeesDatumFormaat = strResultaat

    Exit Function

    ErrorHandler:
    MsgBox "Er is wat foutgegaan"
    End Function

    [/code:1:a4eeb4c957]

    Deze funktie haalt het shortdate format op maar is met een eenvoudige ingreep om te bouwen tot een funktie die naar believen het long en het short format ophaalt.

    Met de kreet
    strFormat = LeesdatumFormaat

    krijg je nu het gebruikte datumformaat. Dit formaat kun je nu gebruiken in je format funktie.
  • OK, mee eens

    De vorm waarmee Access een datum laat zien hoeft niet de vorm te zijn waarmee de datum is opgeslagen, maar ….

    In het ontwerpscherm van een tabel (in Access) kan je veldeigenschappen instellen (waaronder ook Notatie).

    Mijn eigenlijke vraag is, of je die veldeigenschappen kunt achterhalen vanuit VB6. Ze zitten tenslotte ook opgeslagen in de mdb.


    ROB

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.