Neuigkeiten:

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

Mobiles Hauptmenü

Neueste Beiträge

#11
Access-Hilfe / Re: Handling DsLookup (by Hond...
Letzter Beitrag von PhilS - Mai 22, 2025, 16:20:50
Zitat von: Hondo am Mai 22, 2025, 15:03:52If rs.EOF Then
    fcDomWert = Null
Das ist teilweise falsch. Für COUNT und SUM muss der Rückgabewert 0 sein und nicht NULL.
#12
Access Programmierung / Re: Insert into von Daten in e...
Letzter Beitrag von Hondo - Mai 22, 2025, 15:13:46
Anstelle von: Set DB2 = Currentdb schreibst du z.B.:
Set DB2 = DBEngine.Workspaces(0).OpenDatabase("c:\Databank2.mdb")

Dann kannst du z.B. mit DB2.Execute "SQL-Abfrage" Daten in dieser Datenbank einfügen, löschen oder ändern.
Gruß Andreas
#13
Access-Hilfe / Re: Handling DsLookup (by Hond...
Letzter Beitrag von Hondo - Mai 22, 2025, 15:03:52
Hallo,
der Code ist ja schon ein paar Jahre alt, inzwischen verwende ich eine ganz andere Funktion als Ersatz für die Domänenfunktionen:

Edit: siehe hier: https://www.access-o-mania.de/forum/index.php?topic=24528.0
Edit2: das Orginal stammt mutmaßlich von hier: https://www.tksoft-online.de/ms-access/codes/codeschnipsel-sonstiges/82-domaenenfunktionen-ersatz.html

Folgenden Code in ein Modul kopieren:

Public Function fcDomWert(Expression As String, Domain As String, _
                   Optional Criteria As String, _
                   Optional ltDomArt As ltDomWert) As Variant
    Dim bytWert As Byte
    Dim strSQL As String
    Dim rs As DAO.Recordset
    If IsMissing(ltDomArt) Then
        bytWert = 0
    Else
        bytWert = ltDomArt
    End If
    Select Case bytWert
        Case 0: strSQL$ = "SELECT " & Expression$ & " FROM " & Domain$
        Case 1: strSQL$ = "SELECT COUNT(" & Expression$ & ") FROM " & Domain$
        Case 2: strSQL$ = "SELECT MAX(" & Expression$ & ") FROM " & Domain$
        Case 3: strSQL$ = "SELECT SUM(" & Expression$ & ") FROM " & Domain$
        Case 4: strSQL$ = "SELECT FIRST(" & Expression$ & ") FROM " & Domain$
        Case 5: strSQL$ = "SELECT LAST(" & Expression$ & ") FROM " & Domain$
        Case 6: strSQL$ = "SELECT SUM(" & Expression$ & ") FROM " & Domain$
        Case 7: strSQL$ = "SELECT AVG(" & Expression$ & ") FROM " & Domain$
    End Select
    If Nz(Criteria$, "") <> "" Then strSQL$ = strSQL$ & " WHERE " & Criteria$
    Set rs = CurrentDbC.OpenRecordset(strSQL$, dbOpenForwardOnly)
    If rs.EOF Then
        fcDomWert = Null
    Else
        fcDomWert = rs.Fields(0)
    End If
    rs.Close
    Set rs = Nothing
End Function

In den Deklarationsteil schreibst du folgendes:
Public Enum ltDomWert
    ltDLookup = 0
    ltDCount = 1
    ltDMax = 2
    ltDMin = 3
    ltDFirst = 4
    ltDLast = 5
    ltDSum = 6
    ltDAvg = 7
End Enum


Jetzt kannst du alle Domänenfunktionen aufrufen.

Also z.B. DLookup:
MeinWert = fcDomWert("Feldname1", "Tabelle1","ID=4711", ltDLookup)
Oder DCount:
Anzahl = fcDomWert("*", "Tabelle1", "Nachname='Meier'", ltDCount)

Durch den Enum hast du im VBA-Editor dann automatisch eine Intellisense.
Ob der Code von mir selbst stammt kann ich nicht sagen. Möchte mich da auch nicht mit fremden Federn schmücken.
Gruß Andreas
#14
Access Programmierung / Insert into von Daten in eine ...
Letzter Beitrag von MichaTH - Mai 22, 2025, 15:02:46
Ich suche die Anweisung zu "Insert into" zum Anfügen von Daten in eine Tabelle in einer anderen Datenbank. Was muss ich speziell eingeben, um im Forum genau dazu etwas zu finden? Bei Suche nach "insert into" finde ich nichts entsprechendes. Vielen Dank im voraus.
#15
Bericht / Falsche Berechnungen in Berich...
Letzter Beitrag von PawelPopolski - Mai 22, 2025, 14:58:26
Moin,

Ich nutze Berichte, in denen sowohl im Gruppen- als auch im Berichtsfuss Summen ermittelt werden. Die Berechnung findet in VBA statt. Klappt auch, solange man nicht nur Teile des Berichts druckt.
Möchte ich z.B. nur die letzte Seite eines Berichts drucken (Warum? Ist doch egal!) werden nur die Werte in den Gruppenfüßen und im Berichtsfuß addiert, die auf der Seite zu sehen sind.
Ich habe jetzt schon mit den Ereignissen Format und Print experimentiert - ohne Erfolg.

Kennt jemand dieses Phänomen und ein Lösung?

Gruß
#16
Access Programmierung / Re: Parameter HasFieldNames sc...
Letzter Beitrag von markusxy - Mai 22, 2025, 13:35:14
In eine Excel datei kann man auch per SQL Insert Befehl schreiben.
Benötigt nur einen Bruchteil der Zeit wie Automatisation.
Beispiel habe ich grad nicht zur Hand, sollte aber im WWW zu finden sein.
Bei Interesse kann ich mal eines Posten.

#17
Access Programmierung / Re: Bericht Automatisch als HT...
Letzter Beitrag von markusxy - Mai 22, 2025, 13:32:55
Zitat von: kartler am Mai 19, 2025, 23:14:40Nun 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.

Warum so umständlich?
Wenn der Zugang über Web gewährleistet ist, die Eingaben über Web machen und dann kann jeder jederzeit die Ergebnisse ebenso dort sehen. Falls man tatsächlich einen Download benötigt, könnte man diesen ja ganz simpel per CSV generieren, oder eine PDF on-the-fly erzeugen.
#18
Access-Hilfe / Handling DsLookup (by Hondo)
Letzter Beitrag von Doming - Mai 22, 2025, 13:32:09
Moin,

ich bin heute ,,aus Versehen" auf dem Blog von Hondo gelandet und habe dort den Ersatz für Dlookup gefunden.
In der Doku ist der Code auch als Ersatz für DCount angekündigt, wie kann ich die Anzahl der Einträge damit zurückgeben?

Wenn ich von dem Geschwindigkeitsvorteil auch noch nicht ganz überzeugt bin, die Abfrage von mehreren Feldern damit finde ich definitiv gelungen.

Gruß
 Doming
#19
Access Programmierung / Re: Datenaktualisierung scheit...
Letzter Beitrag von markusxy - Mai 22, 2025, 13:24:17
Zitat von: Mokkie am Mai 21, 2025, 11:59:19Ist das so gemeint, dass ich das über eine StoredProcedur auf dem SQL server und in Access nur die entsprechenden Paramter an diese übergeben sollte?

Nein, bezüglich SQL Injection hat dynamic SQL keinen Nachteil, es sei denn man macht es so wie gezeigt.
Persönlich verwende ich zu 90% dynamic SQL und zu 10% Prozeduren. Aber ich verwende wie bereits erwähnt auch bei dynamic SQL das Parameter Objekt. Ich käme nie auf die Idee den per UI übergebenen Wert per String Operation zu übergeben. Ich entwickle zwar schon seit Jahren nichts neues mit VBA aber auch bei ADO.Net gilt das selbe Prinzip - nur gibts weit mehr Möglichkeiten.
Grundsätzlich solltest du dich mehr mit der Dokumentation beschäftigen, damit du zumindest die Möglichkeiten und Parameter kennst um dann von Fall zu Fall zu entscheiden, was du nehmen willst. Christian hat da ja schon einige wertvolle Hinweise gegeben. Vor allem muss man sich in einer Multi User Umgebung immer fragen, wie man gleichzeitige Zugriffe handelt.
#20
Access-Hilfe / Re: Bestimmte Daten vom Formul...
Letzter Beitrag von Lemmy2902 - Mai 22, 2025, 12:45:04
ja ich habe diene Datenbank getestet da klappt alles bestens, tblProjekte hat insgesamt 499 Datensätze und ist aber nur ein teil. das komplette Projekt ist insgesamt 260MB groß