Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 4 van 4

Onderwerp: Dagnaam bij de datum plaatsen

  • Vraag is opgelost
  1. #1
    Senior Member
    Verenigingslid

    Geregistreerd
    4 januari 2011

    Dagnaam bij de datum plaatsen

    Hallo, ik heb een programmacode om op jaarbasis de werkdagen van de week aan te maken voor de registratie van personen.
    Zoals het nu werkt zie ik alleen de dagdatum en het zou een stuk makkelijker werken als ik bij de datum ook te zien kreeg om welke dag het gaat. Wie kan mij hierbij helpen? Bij voorbaat dank.

    Code:
    Option Compare Database
    ''Option Explicit
    Dim rst As ADODB.Recordset
    Dim teller As Integer, i As Integer
    Dim sDatum As Date, StartDatum As Date, EindDatum As Date
    Dim strBefore, strAfter As String
    Dim r As ADODB.Recordset
    Dim db As Database
    Dim qdf As QueryDef
    Dim iStart As Long, iEind As Long
    Dim strSQL As String
    Dim qTmp As QueryDef
    
    Private Sub cmdDatumToevoegen_Click()
    
        DatumToevoegen "Werkdag", "Presentie vrijwilligers"
    
    End Sub
    
    Sub Test()
    Dim strSQL As String
    
        StartDatum = DateSerial(Year(Date), 1, 1)
        teller = 1
        Set rst = New ADODB.Recordset
        rst.Fields.Append "Testnr", adInteger
        rst.Fields.Append "Datum", adDate
        rst.Open
        Do Until sDatum = DateSerial(Year(StartDatum) + 1, 1, 1)
            rst.AddNew
            rst!testnr = teller
            rst!Datum = sDatum
            rst.Update
            teller = teller + 1
            sDatum = sDatum + 1
        Loop
     
     'de recordset sorteren op testnr
        rst.MoveFirst
        Do Until rst.EOF
            strAfter = strAfter & rst.Fields("Datum") & " - " & rst.Fields("testnr") & vbCrLf
            Debug.Print rst!testnr
            rst.MoveNext
        Loop
        rst.Close
        Set rst = Nothing
        MsgBox strAfter
    
    
    strSQL = "SELECT Tdatarangeinvoer.Id, Tdatarangeinvoer.naam, tDatum.Werkdag, Tdatarangeinvoer.begindatum, Tdatarangeinvoer.einddatum"
    strSQL = strSQL & "FROM Tdatarangeinvoer, tDatum"
    strSQL = strSQL & "WHERE (((tDatum.Werkdag) Between [begindatum] And [einddatum]))"
    strSQL = strSQL & "ORDER BY Tdatarangeinvoer.naam, tDatum.Werkdag;"
    
    End Sub
    
    Private Sub cmdUnboundRecordset_Click()
    
        DatumTabel
    
    ''''strSQL = "Select * FROM tDatum"
    ''''
    ''''Set db = CurrentDb()
    ''''''On Error Resume Next
    ''''db.QueryDefs.Delete ("qTemp")
    ''''tmp = db.CreateQueryDef("qTemp")
    ''''
    ''''Set qTmp = db.QueryDefs("qTemp")
    ''''
    ''''''tmp = InputBox("", "", strSQL)
    ''''qTmp.SQL = strSQL
    ''''
    ''''Debug.Print strSQL
    ''''
    ''''DoCmd.Close acForm, Me.Form.Name
    ''''DoCmd.OpenQuery "qTemp"
    ''''
    End Sub
    
    Sub CreateQueryDefX()
    
       Dim dbsNorthwind As Database
       Dim qdfTemp As QueryDef
       Dim qdfNew As QueryDef
    
       Set dbsNorthwind = OpenDatabase("Northwind.mdb")
    
       With dbsNorthwind
          ' Create temporary QueryDef.
          Set qdfTemp = .CreateQueryDef("", "SELECT * FROM Employees")
          ' Open Recordset and print report.
          GetrstTemp qdfTemp
          ' Create permanent QueryDef.
          Set qdfNew = .CreateQueryDef("NewQueryDef", _
             "SELECT * FROM Categories")
          ' Open Recordset and print report.
          GetrstTemp qdfNew
          ' Delete new QueryDef because this is a demonstration.
          .QueryDefs.Delete qdfNew.Name
          .Close
       End With
    
    End Sub
    
    Function GetrstTemp(qdfTemp As QueryDef)
    
       Dim rstTemp As Recordset
    
       With qdfTemp
          Debug.Print .Name
          Debug.Print "  " & .SQL
          ' Open Recordset from QueryDef.
          Set rstTemp = .OpenRecordset(dbOpenSnapshot)
    
          With rstTemp
             ' Populate Recordset and print number of records.
             .MoveLast
             Debug.Print "  Number of records = " & _
                .RecordCount
             Debug.Print
             .Close
          End With
    
       End With
    
    End Function
    
    Sub ClientServerX2()
    
       Dim dbsCurrent As Database
       Dim qdfBestSellers As QueryDef
       Dim qdfBonusEarners As QueryDef
       Dim rstTopSeller As Recordset
       Dim rstBonusRecipients As Recordset
       Dim strAuthorList As String
    
       ' Open a database from which QueryDef objects can be
       ' created.
       Set dbsCurrent = OpenDatabase("DB1.mdb")
    
       ' Create a temporary QueryDef object to retrieve
       ' data from a Microsoft SQL Server database.
       Set qdfBestSellers = dbsCurrent.CreateQueryDef("")
       With qdfBestSellers
          ' Note: The DSN referenced below must be configured to
          '       use Microsoft Windows NT Authentication Mode to
          '       authorize user access to the Microsoft SQL Server.
          .Connect = "ODBC;DATABASE=pubs;DSN=Publishers"
          .SQL = "SELECT title, title_id FROM titles " & "ORDER BY ytd_sales DESC"
          Set rstTopSeller = .OpenRecordset()
          rstTopSeller.MoveFirst
       End With
    
       ' Create a temporary QueryDef to retrieve data from
       ' a Microsoft SQL Server database based on the results from
       ' the first query.
       Set qdfBonusEarners = dbsCurrent.CreateQueryDef("")
       With qdfBonusEarners
          ' Note: The DSN referenced below must be configured to
          '       use Microsoft Windows NT Authentication Mode to
          '       authorize user access to the Microsoft SQL Server.
          .Connect = "ODBC;DATABASE=pubs;DSN=Publishers"
          .SQL = "SELECT * FROM titleauthor WHERE title_id = '" & rstTopSeller!title_id & "'"
          Set rstBonusRecipients = .OpenRecordset()
       End With
    
       ' Build the output string.
       With rstBonusRecipients
          Do While Not .EOF
             strAuthorList = strAuthorList & "  " & !au_id & ":  $" & (10 * !royaltyper) & vbCr
             .MoveNext
          Loop
       End With
    
       ' Display results.
        MsgBox "Please send a check to the following authors in the amounts shown:" & vbCr _
            & strAuthorList & "for outstanding sales of " & rstTopSeller!Title & "."
        rstTopSeller.Close
        dbsCurrent.Close
    
    End Sub

  2. #2
    Redacteur
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Afstand tot server
    ±151 km
    Je kunt een datum heel simpel met een andere notatie ook de dag laten zien: ddd dd-mm-yyyy. Is dat niet al voldoende?
    Michel

    Consistancy is the last refuge for the unimaginatives

  3. #3
    Senior Member
    Verenigingslid

    Geregistreerd
    4 januari 2011
    Zo eenvoudig kan het zijn! Bedankt!

  4. #4
    Redacteur
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Afstand tot server
    ±151 km
    Als aanvulling nog twee functies die meer velden vullen. Die heb je dus niet meer nodig, maar dan heb je een beetje een idee hoe het werkt

    Eerst een methode die gebruik maakt van de ADO bibliotheek:
    Code:
    Function WerkDagen_ADO()
    Dim rst As ADODB.Recordset
    Dim conn As ADODB.Connection
    Dim strSQL As String
    Dim iStart As Long, iEind As Long
    Dim SortArray As Variant
    
        iStart = CDbl(DateSerial(Year(Date), 1, 1))
        iEind = CDbl(DateSerial(Year(Date) + 1, 1, 1))
    
        Set rst = New ADODB.Recordset
        Set conn = CurrentProject.Connection
        With rst
            .ActiveConnection = conn
            .CursorType = adOpenDynamic
            .CursorLocation = adUseClient
            .LockType = adLockOptimistic
            .Open "Werkdag"
            Do While iStart < iEind
                If WeekDay(CDate(iStart), vbMonday) < 6 Then
                    .AddNew
                    !Werkdag = CDate(iStart)
                    !Dag = Format(CDate(iStart), "dddd")
                    .Update
                End If
                iStart = iStart + 1
            Loop
            rst.Close
        End With
        Set rst = Nothing
    
    End Function
    En deze maakt gebruik van de DAO bibliotheek:
    Code:
    Function Werkdagen_DAO()
    Dim iStart As Long, iEind As Long
    
        iStart = CDbl(DateSerial(Year(Date), 1, 1))
        iEind = CDbl(DateSerial(Year(Date) + 1, 1, 1))
    
        With CurrentDb.OpenRecordset("Werkdagen")
            Do While iStart < iEind
                If WeekDay(CDate(iStart), vbMonday) < 6 Then
                    .AddNew
                    !Werkdag = CDate(iStart)
                    !Dag = Format(CDate(iStart), "dddd")
                    .Update
                End If
                iStart = iStart + 1
            Loop
            .Close
        End With
    
    End Function
    Michel

    Consistancy is the last refuge for the unimaginatives

Berichtenregels

  • U mag geen nieuwe discussies starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • Umag niet uw berichten bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Linkpartners
Aanbiedingen