collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 60
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 1
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14133
  • stats Beiträge insgesamt: 68384
  • stats Themen insgesamt: 9210
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Neueste Beiträge

Seiten: 1 2 [3] 4 5 ... 10
21
Access Programmierung / Re: Überprüfung von vorhandenen Tabellen
« Letzter Beitrag von markus888 am Dezember 13, 2018, 17:53:22 »
@Lachtaube,
ich vermute, dass der Zugriff über die Collection sogar schneller ist, als über das Recordset.

Und mit einer ziemlich hohen Wahrscheinlichkeit finden sich die Objekte in der MSysObjects in Zukunft und X statt unter Name.  :-\

22
Access Programmierung / Re: Überprüfung von vorhandenen Tabellen
« Letzter Beitrag von Lachtaube am Dezember 13, 2018, 17:18:10 »
Es gibt schon seltsame Anforderungen. Tabellen verschwinden doch nicht einfach so in einer Datenbank. Oder sind da Schelme am Werk, die unbemerkt im Backend Tabellen löschen?

Ich habe auch schon viel Müll im Internet gefunden - mit dem Unterschied, dass ich ihn nicht verwende. Systemtabellen sind halt nicht dokumentiert und könnten sich ohne Ankündigung von Version zu Version ändern. Eine Abfrage via Recordset oder DLookup dürfte auch kaum schneller als eine kleine Funktion sein. Z.B.
Code: Visual Basic
Function TableExists(TblName As String, _                     Optional ByVal ForceDbInitialization As Boolean) As Boolean
   
   Static db As DAO.Database
   Dim tdf As DAO.TableDef
   
   On Error Resume Next
   If db Is Nothing Or ForceDbInitialization Then Set db = CurrentDb
   Set tdf = db.TableDefs("TechCrunchContinentalUS")
   TableExists = CBool(Err.Number = 0)
End Function

Soll so eine Funktion mehrmals hintereinander aufgerufen werden, müssen ja die Tabellennamen irgendwo hinterlegt sein und entscheiden, wie mit dem Ergebnis umgegangen wird. Eine Möglichkeit wäre:

Code: Visual Basic
Sub Foo()   Static vTables As Variant
   Dim v As Variant
   
   If Not IsArray(vTables) Then
      vTables = Array("tblA", "tblB", "tblC")
   End If
   
   For Each v In vTables
      If Not TableExists(v) Then MsgBox "Tabelle '" & v & "' existiert nicht."
   Next
End Sub
23
Access Programmierung / Re: Überprüfung von vorhandenen Tabellen
« Letzter Beitrag von markus888 am Dezember 13, 2018, 16:25:27 »
Grundsätzlich kannst du das auch über eine Abfrage auf die Tabelle MSysObjects machen.
Da steht alles zur Tabelle drin. Ist einfacher und viel effizienter.

Um die Tabelle zu sehen, kannst du sie über Navigationsoptionen - Systemobjekte anzeigen einblenden.

LG Markus
24
Access Programmierung / Überprüfung von vorhandenen Tabellen
« Letzter Beitrag von sellrich am Dezember 13, 2018, 16:01:29 »
Hallo. Ich möchte beim Starten meiner DB prüfen, ob alle notwendigen Tabellen vorhanden sind.
Nach sehr langer Suche habe ich für mein Problem folgende Funktion entdeckt :

Function fctTableExists(strTableSearch, strTableDelete As String) As Boolean
On Error GoTo fctTableExists_Error

Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb

For Each tdf In db.TableDefs
If tdf.Name = strTableSearch Then fctTableExists = True: strTableDelete = strTableSearch: Exit For
Next
 
fctTableExists_Exit:
    Exit Function
   
fctTableExists_Error:
    DoCmd.SetWarnings True
    MsgBox Error$
    Resume fctTableExists_Exit
   
End Function

Diese Funktion rufe ich nun mit
If fctTableExists("PREISE01", strTableDelete) = False Then
        DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel12, "PREISE01", "C:\EXPORT\PREISE\PREISE01.xlsx", True
Else
        If MsgBox("Es ist ein Fehler aufgetreten. Bitte überprüfen Sie, ob die Tabelle PREISE01.xlsx in C:\EXPORT vorhanden sind.", vbOKOnly, "Warnung") = vbOK Then
            DoCmd.Quit
        End If
End If
auf. Nun meine Frage. Gibt es eine Möglichkeit bei der Zeile :
If fctTableExists("PREISE01", strTableDelete) = False Then

Mehrere Tabellen abzufragen? Habe im Netz dazu leider nichts gefunden. Aktuell habe ich diesen Abruf 5x im Code stehen, da ich nach 5 Tabellen abfrage. Ist an sich nicht schlimm (funktioniert ja genau wie es soll). Mich interessiert nur, ob es geht.
25
Access Programmierung / Re: INSERT crasht im Multiuserbetrieb DAO/ODBC
« Letzter Beitrag von Milvus am Dezember 13, 2018, 14:39:30 »
richtig, sorry

Menschenskinder, Vertipper:

1    UPDATE Tabelle1 SET KEY = x
2    INSERT INTO Tabelle2 SELECT KEY FROM Tabelle1
26
Access Programmierung / Re: Zeit in Dateinamen
« Letzter Beitrag von MzKlMu am Dezember 13, 2018, 11:40:33 »
Hallo,
Date enthält keine Uhrzeit. Deklaration als String ist falsch, aber die beiden Zeilen sind ohnehin überflüssig, Du kannst Now (Datum mit Uhrzeit) direkt verwenden.
Daher so:
... vom " & Format(Now,"dd-mm-yyyy_hhnnss") & ".pdf"Für die Minuten ist nn richtig.
Ich würde auch den Punkt im Datum nicht verwenden.
Ggf. könnte es sinnvoll sein, das Datumsformat umzudrehen (yyyy-mm-dd).
27
Access Programmierung / Zeit in Dateinamen
« Letzter Beitrag von tismo am Dezember 13, 2018, 11:24:37 »
Hallo,

ich wollte über eine vba ein pdf mit vorgegebenen Namen erstellen erstellen lassen, in dem sowoh Datum, als auch die aktuelle Zeit enthalten sind. über die Time-funktion wird die Zeit mit : getrennt, was bei Dateinamen nicht erlaubt ist. habe folgende vba und  hinter date soll die Zeit als 112251 für 11:22:51 stehen

...
Dim Datum As String
Datum = Date


DoCmd.OpenReport "Angebot Kosten", acViewPreview, , "Rechnungsnummer =" & Me!Rechnungsnummer, acHidden
DoCmd.OutputTo acOutputReport, "Angebot Kosten", acFormatPDF, DateiPfad & "\" &lName & ", " & Me.Vorname & " - Angebot Kosten vom " & Datum & ".pdf"
...

Ich hoffe, ihr könnt mir weiterhelfen.
28
Access Programmierung / Re: INSERT crasht im Multiuserbetrieb DAO/ODBC
« Letzter Beitrag von ebs17 am Dezember 13, 2018, 11:06:22 »
Zitat
Ich habe mittlerweile die Stelle des Crashs identifiziert:

1    UPDATE Tabelle1 SET KEY = x
2    INSERT INTO Tabelle1 SELECT KEY FROM Tabelle1
Ich sinniere über den Inhalt der Anweisungen: Alle Schlüssel werden auf einen Wert festgelegt + vorhandene Schlüssel werden pur entsprechend ihrer vorhandenen Anzahl vervielfältigt. Ergebnislos.

Was fängt man mit nur einem Schlüssel im Datensatz an?
Ein paar Zahlen kann man sich auch aus einer Hilfstabelle holen, ohne alle Verrenkungen.
29
Formular / Re: Mehrfachauswahl mit Listenfeld
« Letzter Beitrag von DF6GL am Dezember 13, 2018, 10:20:02 »
Hallo,

wenn er den Formular-Namen nicht kennt, dann existiert der halt nicht und muss durch den aktuell richtigen Namen ersetzt werden.....
30
Access Programmierung / Re: Vba oder Makro für FE/BE verknüpfung
« Letzter Beitrag von Milvus am Dezember 13, 2018, 10:06:51 »
Ich benutze sowas:

DoCmd.TransferDatabase acLink, "Microsoft Access",...

Das verwende ich zum Verbinden zu einer Testspiegelung und zurück.
D.h. die Tabellen sind alle schon eingebunden.

Folgende Schritte:
1. Einbinden der neuen "korrekten" TAbelle mit Zusatz im Namen hinten dran (z.B.: _temp), also der Name im Frontend.
2. Löschen der alten Tabelle
3. Namen der neuen Tabelle korrigieren (_temp wieder weg nehmen... done!)

Das ganze in einem Loop über alle verknüpfte Tabellen, d.h. die lade ich in ein Array und mache dann den die 3 Schritte oben.
Seiten: 1 2 [3] 4 5 ... 10