Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Neueste Beiträge

#71
Access-Hilfe / Re: Bestimmte Daten vom Formul...
Letzter Beitrag von Hondo - Mai 20, 2025, 19:08:32
Hallo,
du solltest dich dazu mit der Excel-Automation beschäftigen.
Sieh dir mal folgenden Link an, den finde ich ganz gut erklärt.
https://access-im-unternehmen.de/Excel_automatisieren
Der Beitrag ist zwar gekürzt, aber ganz am Ende steht das entscheidende um auf eine Zelle zuzugreifen: objSheet.Cells(1, 1)

Die Kurzform zur Excel-Automation findest du z.B. auch hier:
https://learn.microsoft.com/de-de/office/troubleshoot/excel/transfer-data-to-excel-from-vb

Gruß Andi
#72
Access Programmierung / Re: Parameter HasFieldNames sc...
Letzter Beitrag von Hondo - Mai 20, 2025, 19:04:10
Hallo,
learn.microsoft.com sagt zu diesem Parameter folgendes:
ZitatVerwenden Sie False (0), um die erste Zeile der Textdatei als normale Daten zu behandeln. Wenn Sie dieses Argument leer lassen, wird der Standard (False) angenommen.
Und das gilt auch beim Export.

Also einfach mal den Wert auf False setzen.
Gruß Andi
#73
Access Programmierung / Parameter HasFieldNames schein...
Letzter Beitrag von HarryFox - Mai 20, 2025, 16:24:51
Hallo zusammen,

ich habe hier mit der Suchfunktion nichts gefunden und auch Tante Google hatte keine passenden Treffer. Also liegt es wohl an mir.

Folgendes Problem ich:
Ich nutze Access 2016 (neuere Version kommt hoffentlich bald). Damit muss ich eine umfangreiche Textdatei einlesen, ein paar Änderungen vornehmen und dann alles wieder zurück in eine Textdatei schreiben. Und das alles so, dass es später jemand benutzen kann, der nicht programmieren kann.

Ich importiere die Datei mittels
DoCmd.TransferText acImportDelim, "servicecatalog", "servicecatalog_rohimport", SC_Datei, True(Der Variablen SC_Datei ist vorher der Dateiname zugewiesen worden)
Dann habe ich eine Tabelle und kann alle gewünschten Änderungen mittels Recordset durchführen. Das klappt auch. Nun will ich alles wieder in einer Textdatei speichern, also benutze ich:
DoCmd.TransferText TransferType:=acExportDelim, _
        SpecificationName:="servicecatalog", _
        TableName:="servicecatalog_export", _
        FileName:=Ordner & "\sc.csv", _
        HasFieldNames:=True, _
        Codepage:=65001
(Ich habe auf die Schreibweise mit benannten Parametern umgestellt nachdem das Problem auftrat, aber das ändert nichts)

Grundsätzlich werden die Daten abgespeichert und sehen auch so aus, wie es sein soll. Nur leider zeigt der Parameter "HasFieldNames" keinen Effekt, denn die Feldnamen stehen nicht in der ersten Zeile.

Wenn ich den Export manuell durchführe und dabei das Feld "Feldnamen in erste Zeile einbeziehen" ankreuze, dann klappt alles wie am Schnürchen. Nur per VBA eben leider nicht.

Da die Datei anschließend in eine Software importiert werden soll auf deren Importroutine ich keinen Einfluss habe, ist es aber sehr wichtig, dass die Datei vom Format her GENAU mit der ursprüglichen übereinstimmt.

Jemand eine Idee? Wenn das ein bekannter Fehler wäre, hätte ich doch sicher im Netz etwas dazu gefunden. Klar könnte ich die Namen manuell in die erste Zeile der Tabelle schreiben bevor ich dann meien Daten anfüge, aber ich hoffe darauf, dass ich nur irgendwas falsch mache.

Viele Grüße
Harry Fox
#74
Access-Hilfe / Bestimmte Daten vom Formular a...
Letzter Beitrag von Lemmy2902 - Mai 20, 2025, 14:03:56
Hallo zusammen ich brauche mal wieder eure Unterstützung,
ich möchte gerne Bestimmte Daten an einer bestimmten Zellen in Excel übergeben.
z.B. Bezeichnungsfeld proNummer an Zelle A1 usw. Leider habe ich keine Vorstellung wie das Ganze Anfangen soll
#75
Access Programmierung / Re: LDB auslesen (LDBView)
Letzter Beitrag von knobbi38 - Mai 20, 2025, 12:33:03
Hallo,

wofür soll das gut sein? Seit die Benutzerverwaltung in .accdb Datenbanken  nicht mehr zur Verfügung steht, bringt die Information gar nichts mehr, da als "Anmeldename" immer "Admin" verwendet wird ( kann man auch schnell mit einem Texteditor überprüfen).

Man könnte allerdings noch die Informationen dahingehend auswerten, von welchem PC die Datei aktuell noch gelockt wird. Das ist ein wenig aufwendiger und lässt aber noch keinen Rückschluss auf den Benutzer zu:
https://www.vbforums.com/showthread.php?851223-LDB-Viewer
Ein Schritt weiter wäre dann, zu ermitteln, von welchem PC welcher Benutzer aktuell auf die Datei zugreift.
So etwas geht mit Windows Bordmitteln:
https://www.manageengine.de/produkte-loesungen/active-directory/adaudit-plus/infomaterial/ad-tipp-datei-und-ordnerzugriffe-ueberwachen.htmloder aber mit Tools aus den Powertoys:
https://www.windows-faq.de/2022/11/13/wer-hat-diese-datei-im-zugriff/
Das funktioniert allerdings wahrscheinlich nur, wenn man an dem PC/Server arbeitet, auf dem die *.laccdb" angelegt ist. So etwas vom Client aus zu ermitteln, dürfte nicht ganz einfach sein.

Gruß Knobbi38
#76
Access Programmierung / Re: LDB auslesen (LDBView)
Letzter Beitrag von Doming - Mai 20, 2025, 12:10:13
Hmpf, hat man mich wieder erwischt, habe das Ding aus einer alten DB rauskopiert ohne alles durchzugehen.
Ursprünglich war die Funktion statisch programmiert, ich habe erst vorhin den BEPfad eingefügt.
Es funktioniert auch so:Public Function WhosOn(BEPfad As String) As String
On Error GoTo Err_WhosOn
Dim iLDBFile As Long, iStart As Long
Dim iLOF As Long, i As Long
Dim X As String
Dim sLogStr As String, sLogins As String
Dim sMach As String, sUser As String
Dim rUser As UserRec
   
   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 & sLogStr & "; "
      End If
      iStart = iStart + 64
   Loop
   Close iLDBFile
   WhosOn = sLogins

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
#77
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
#78
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
#79
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
#80
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