Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Neueste Beiträge

#91
Access Programmierung / OT
Letzter Beitrag von Beaker s.a. - Mai 20, 2025, 11:40:45
Hallo Doming,
Kann dir zwar hier deine Frage nicht beantworten, aber mir ist da Folgendes aufgefallen.
Wozu erstellst du eine Referenz auf "CurrentDb", nur um den Pfad auszulesen. Da reicht
doch ein direkter Zugriff auf CurrentDb
sPath = CurrentDb.NameUnd wenn schon eine Referenz, dann besser so
Private m_dbCurrent As DAO.Database

Public Property Get dbCurrent() As DAO.Database
'---------------------------------------------------------------------------------------
' Autor     : Hab' ich mal wieder vergessen; schätze aber Lebans oder Kreft
' Purpose   : Why is this the "CurrentDbC" property proc best? Because it is the
'             most generic and handles the most issues and problems. After all, a
'             global can be erased if someone hits the code reset button in VBE.
'             DBEngine(0)(0) might not be the current db. CurrentDb is expensive if
'             called repeatedly. And so on.
'---------------------------------------------------------------------------------------
   
    If (m_dbCurrent Is Nothing) Then
        Set m_dbCurrent = CurrentDb
    End If

    Set dbCurrent = m_dbCurrent

Ende_CleanUp:
    On Error Resume Next
    Exit Property

End Property

gruss ekkehard
#92
Access Programmierung / LDB auslesen (LDBView)
Letzter Beitrag von Doming - Mai 20, 2025, 11:19:07
Hallo,

mit folgender Funktion kann ich herausfinden, wer mit dem Backend verbunden war.

Public Function WhosOn(BEPfad As String) As String
On Error GoTo 0 'Err_WhosOn
Dim iLDBFile As Integer, iStart As Integer
Dim iLOF As Integer, i As Integer
Dim sPath As String, X As String
Dim sLogStr As String, sLogins As String
Dim sMach As String, sUser As String
Dim rUser As UserRec
Dim dbCurrent As Database
Set dbCurrent = DBEngine.Workspaces(0).Databases(0)
sPath = dbCurrent.Name
dbCurrent.Close

   X = Dir(BEPfad)
   iStart = 1
   iLDBFile = FreeFile
   Open BEPfad For Binary Access Read Shared As iLDBFile
   iLOF = LOF(iLDBFile)
   Do While Not EOF(iLDBFile)
      Get iLDBFile, , rUser
      With rUser
         i = 1
         sMach = ""
         While .bMach(i) <> 0
            sMach = sMach & Chr(.bMach(i))
            i = i + 1
         Wend
         i = 1
         sUser = ""
         While .bUser(i) <> 0
            sUser = sUser & Chr(.bUser(i))
            i = i + 1
         Wend
      End With
      sLogStr = sMach
      If InStr(sLogins, sLogStr) = 0 Then
 '        sLogins = sLogins & WerTippt(sLogStr) & vbCrLf '"; "
         sLogins = sLogins & sLogStr & "; "
      End If
      iStart = iStart + 64
   Loop
   Close iLDBFile
   WhosOn = sLogins

   Set dbCurrent = Nothing
Exit_WhosOn:
   Exit Function
Err_WhosOn:
   If Err = 68 Then
      MsgBox "Ich finde keine LDB-Liste", 48, "No LDB File"
   Else
      MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
      Close iLDBFile
   End If
   Resume Exit_WhosOn
End Function

Ich vermute, dass die LDBview.exe ähnlich funktioniert. Allerdings kann sie noch etwas weiteres:
Sie dürfen in diesem Board keine Dateianhänge sehen.

Von den 3 Einträgen ist der letzte offenbar nicht mehr aktiv eingeloggt. Ich kann also sehen, dass ich zwei Leute kontaktieren muss, wenn ich exklusiven Zugriff auf die DB haben will.

Kann ich das auch mit VBA herausfinden?

Gruß
 Doming
#93
Job-Börse / Job gesucht
Letzter Beitrag von dancer - Mai 20, 2025, 06:51:05
Hallo, bin neu hier und wollte mich als Freelancer anbieten.
Habe jahrelange autodidaktische Erfahrung in MS Access Datenbank Programmierung.
Möchte gerne an neuen Aufgaben weiter wachsen.
Bitte schreibt mich gerne an wenn ihr Unterstützung benötigt.
Grüße
#94
Access Programmierung / Re: Bericht Automatisch als HT...
Letzter Beitrag von knobbi38 - Mai 20, 2025, 00:03:17
Hallo,

das ist vielleicht doch eher etwas für Excel oder Word, hat aber mit einer Datenbankanwendung wenig zu tun.

Knobbi38
#95
Access Programmierung / Re: Bericht Automatisch als HT...
Letzter Beitrag von kartler - Mai 19, 2025, 23:14:40
Hallo Ihr beiden.

Leider habe ich bis jetzt nur VBA zusammengebastelt und das auch nur für Excel wo es die Aufzeichnungsmöglichkeit gibt. Und mir so hin und wieder über Google etwas zusammengesucht und getestet.

Wie ich gemerkt habe ist Access ja schon völlig anders.

Ich denke das es mir da schon an den Basics fehlt.
Der Plan ist folgender:

Die Access ist eine Zeitauswertung die 4 Zeiten zusammenzählt und Sortiert als Bericht ausgibt. Nun ist der Plan diesen Bericht nach jeder Eingabe einer Wertungszeit (oder auch voll Automatisch alle 60Sekunden) zu Exportieren als PDF oder noch besser HTML damit man es vollautomatisch auf eine Seite ins Netz laden kann. Dort soll sie dann über einen Link geöffnet werden können daher wird HTML denke ich besser sein.



Gibt es denn irgendwo Beispiele wie man solche VBAs schreiben muss, für excel findet man so viel aber für Access gibts da ja gar nichts.
#96
Access Programmierung / Re: Bericht Automatisch als HT...
Letzter Beitrag von knobbi38 - Mai 19, 2025, 22:52:27
Hallo,

ZitatDer Plan ist einen Bericht Automatisch zu Exportieren in html und auf einen bestimmten Pfad zu speichern und das entweder alle 30 sekunden oder wenn in einem Datensatz im Formular eine Änderung vorgenommen wird.
Hört sich nicht wirklich wie ein "Plan" an. Auch als "schlimmer VBA Anfänger" solltest du mal die Hintergründe erläutern.

Knobbi38
#97
Access Programmierung / Re: Bericht Automatisch als HT...
Letzter Beitrag von markusxy - Mai 19, 2025, 22:03:14
Irgendwas erfinden, führt natürlich nicht weit ...

Hier gehts zur Lösung: https://learn.microsoft.com/de-de/office/vba/api/access.docmd.outputto

Vielleicht erklärst aber erstmal die Hintergründe.
Irgendwie klingt das alles eher unbrauchbar.
#98
Access Programmierung / Bericht Automatisch als HTML o...
Letzter Beitrag von kartler - Mai 19, 2025, 20:31:49
Hallo

Ich bin leider schlimmer VBA anfänger.

Der Plan ist einen Bericht Automatisch zu Exportieren in html und auf einen bestimmten Pfad zu speichern und das entweder alle 30 sekunden oder wenn in einem Datensatz im Formular eine Änderung vorgenommen wird.

Vielleicht kann mir hier jemand helfen habe auch schon etwas im google gefunden, hier bekomme ich aber eine Fehlermeldung wo ich nicht weiterkomme.
--------------------------------------------------------------------------------------------------------
Sub BerichtExportierenUndUeberschreiben()
    Dim strBerichtName As String
    Dim strDateiname As String
    Dim strZielordner As String

    ' Berichtnamen und Dateinamen festlegen
    strBerichtName = "DeinBerichtName"  ' Ersetze "DeinBerichtName" mit dem tatsächlichen Berichtsnamen
    strDateiname = "DeinBericht.pdf"  ' Ersetze "DeinBericht.pdf" mit dem gewünschten Dateinamen und Format

    ' Zielordner festlegen
    strZielordner = "C:\DeineZiele\Berichte\"  ' Ersetze "C:\DeineZiele\Berichte\" mit dem gewünschten Zielordner

    ' Überprüfen, ob der Zielordner existiert, und ggf. erstellen
    If Dir(strZielordner, vbDirectory) = "" Then
        MkDir strZielordner
    End If

    ' Vollständigen Dateipfad erstellen
    Dim strVollstaendigerDateipfad As String
    strVollstaendigerDateipfad = strZielordner & strDateiname

    ' Bericht exportieren
    With CurrentDb.Reports(strBerichtName)
        .Export strVollstaendigerDateipfad, acExportFormatPDF, False, False ' Anpassen des Exportformats (z.B. acExportFormatPDF, acExportFormatExcel)
    End With

    ' Optional: Eine Meldung anzeigen, dass der Export abgeschlossen ist
    MsgBox "Bericht " & strBerichtName & " exportiert nach " & strVollstaendigerDateipfad, vbInformation

End Sub
--------------------------------------------------------------------------------------------------------
Der Fehler wird mir bei: Reports angezeigt. Mir ist aber überhaupt nicht klar warum das nicht geht

With CurrentDb.Reports(strBerichtName)

vielleicht gibt es ja hier jemand der mir weiterhelfen könnte.
#99
Formular / Re: ComboBox Recordset - RowSo...
Letzter Beitrag von Stele4 - Mai 19, 2025, 14:22:30
Hallo!
Manchmal sind die einfachen Dinge zu offensichtlich.

Zitat von: PhilS am Mai 19, 2025, 10:45:21Ich glaube, es sollte funktionieren, wenn du vor Zuweisen der Rowsource das Recordset der ComboBox explizit auf Nothing setzt.
Das werde ich so nicht anwenden (Knobbi hat natuerlich recht bzgl. Doppelstrategie), aber es passt ins Bild und die Welt ist wieder heil. Sehr wertvoll.

Ich verwende den gleichen Mechanismus wie beim 1. Fuellen der Combo-Listen: PT mit SQL.

Ich habe die Vorstellung, ein eingebundenes View ist in Access 'da' und wird zyklisch aktualisiert.
Wenn nun in Access Abfragen mit dieser View als Quelle erfolgen: Gibt es Anfragen beim SQL Server?

In der alten Access-Welt war die Recordsource des Formulars eine Abfrage und die Filterkriterien waren die Werte der Combos. Die RowSources der Combos bezogen sich auf Detailtabellen, koennten sich aber auch auf diese Abfrage beziehen. Das war schoen einfach.

Gruss
Stele
#100
Tabelle/Abfrage / Re: SQL Abfrage Filtern
Letzter Beitrag von Bernd Sowa - Mai 19, 2025, 13:59:26
@ Eckehard:
Deine Lösung hat funktioniert. Danke sehr.