collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 83
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14106
  • stats Beiträge insgesamt: 68014
  • stats Themen insgesamt: 9164
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Neueste Beiträge

Seiten: [1] 2 3 ... 10
1
Access Programmierung / Re: Temporäre Datenquelle an Formular
« Letzter Beitrag von Lachtaube am Heute um 10:25:29 »
Ein Grid ist ein Raster. Ein Datagrid ist eine Datentabelle. Im Sinne der Verwendung unter Access dürfte es sich hierbei um ein gekauftes Steuerelement (ActiveX) handeln, das Daten tabelarisch darstellen kann, wie das Listview OCX von Microsoft auch. Das Problem bei Grids ist, dass nicht Jedes davon einen virtuellen Modus zur Verfügung stellt. was die Dinger dann bei größeren Datenmengen langsam und unbrauchbar macht.
2
Access Programmierung / Re: Temporäre Datenquelle an Formular
« Letzter Beitrag von Milvus am Heute um 09:56:52 »

Grundsätzlich ist das Problem - ADO ist bei Access nicht sauber implementiert.
Eine Batch Verarbeitung klappt z.B. im Formular nicht wie es sollte.
Ich verwende dafür schon lange ein Datagrid.
Dann geht das wirklich perfekt mit ADO und man kann alle Techniken nutzen.

Was ist ein Datagrid (Active x?)?
3
Access Programmierung / Re: VBA Projekt als Klassenbibliothek
« Letzter Beitrag von Josef P. am November 17, 2018, 19:33:17 »
Hallo!

Vorab: Ich selbst würde eine accda auch nicht für fix in der Anwendung benötigte Klassen verwenden. Trotzdem muss ich diese Methode ein wenig verteidigen, da man auch damit ordentlich programmieren kann. Der Aufwand ist allerdings größer als mit in der Anwendung enthaltenen Codemodulen.

Run und CallbyName brauchen ein vielfaches der Zeit wie direkte Aufrufe.
Was aber bei einem einmaligem Aufruf (je Anwendungsstart) ziemlich egal sein wird.

Zitat
Run gibt keinen Error weiter.
Die daraus erzeugten Instanzen aber schon.

Zitat
Bei Klassen müsste alles per LateBinding funktionieren.
Im Frontend müsste man immer als Objekt deklarieren, da die Klasse unbekannt ist.
Der Compiler kann also keine Änderungen der Schnittstellen feststellen.
Man kann aber die Entwicklung Early binding durchführen und zur Anwendungserstellung auf Latebinding umstellen.

Im Anhang ist noch ein Beispiel, wie ich eine accda als Bibliothek einsetzen würde.
Anm.: TestLib.accda ist nicht komplliert, könnte aber auch als accde (umbenannt auf accda) verwendet werden.

mfg
Josef
4
Tabelle/Abfrage / Re: Daten in Gruppen nummerieren
« Letzter Beitrag von Lachtaube am November 17, 2018, 18:47:05 »
In VBA sollte folgende Schleife zum Ziel führen.

   Const QRY As String = _
         "SELECT strName, intNum FROM DerTabellenname ORDER BY ID"

   Dim n As Long
   Dim p As String

   With DBEngine(0)(0).OpenRecordset(QRY, dbOpenDynaset)
      Do Until .EOF
         If n = 0 Then
            n = 1
            p = !strname
         ElseIf !strname <> p Then
            n = n + 1
            p = !strname
         End If
         .Edit
         !intNum = n
         .Update
         .MoveNext
      Loop
      .Close
   End With
5
Tabelle/Abfrage / Re: Daten in Gruppen nummerieren
« Letzter Beitrag von markus888 am November 17, 2018, 18:40:09 »
Wie schon Lachtaube schreibt mit Jet SQL nur mit einem Kopfstand umzusetzen.
Der einfache Weg: Daten in ein Recordset laden, per VBA die notwendigen Werte ermitteln und in eine Tabelle schreiben.
6
Tabelle/Abfrage / Re: Daten in Gruppen nummerieren
« Letzter Beitrag von Sainfeld am November 17, 2018, 18:15:58 »
@Lachtaube

das sieht gut aus.  :) Ich habe jedoch keine Ahnung, wie ich das in meine Access Datenbank implementieren kann. Ich habe leider keinen Datenbankserver als Backend.

@ebs17
Die Darstellung ist modelliert. Die echte Tabelle (257.000 Datensätze) sieht etwa so aus:

ID; Datum;          strName;  strGebiet; intNum
1  ; 03.12.2016;   Klaus        RO-121
2. ; 04.01.2017;   Klaus        RO-121
3  ; 06.02.2017;   Klaus        RO-121
4  ; 03.03.2017;   Heinz        RO-121
5  ; 04.04.2017;   Heinz        RO-121
6  ; 07.05.2017;   Klaus        RO-121
7  ; 08.06.2017;   Heinz        RO-121
8  ; 09.06.2017;   Heinz        RO-121

Am Ende benötige ich eine Tabelle, die so aussieht:

ID(Pk); DatumAnfang; DatumEnde; strName; strGebiet
1;         03.12.2016;    06.02.2017; Klaus       RO-121
2;         03.03.2017;    04.04.2017; Heinz       RO-121
3;         07.05.2017;    07.05.2017; Klaus       RO-121
4;         08.06.2017;    09.06.2017; Heinz       RO-121

Nun war meine Idee, die Tabelle hoch zu nummerieren:

ID; Datum;          strName;  strGebiet; intNum
1  ; 03.12.2016;   Klaus        RO-121       1
2. ; 04.01.2017;   Klaus        RO-121       1
3  ; 06.02.2017;   Klaus        RO-121       1
4  ; 03.03.2017;   Heinz        RO-121       2
5  ; 04.04.2017;   Heinz        RO-121       2
6  ; 07.05.2017;   Klaus        RO-121       3
7  ; 08.06.2017;   Heinz        RO-121       4
8  ; 09.06.2017;   Heinz        RO-121       4

um in einer Abfrage nach dem Max Wert und MinWert des Datums unter der Bedingung von intNum (aufsteigend) diese Tabelle zu generieren.

Vielen Dank.
7
Tabelle/Abfrage / Re: Gruppierung von Daten
« Letzter Beitrag von Jochen1 am November 17, 2018, 15:28:26 »
Das hat geklappt ! Vielen Dank für Deine schnelle Unterstützung !
Jochen
8
Tabelle/Abfrage / Re: Gruppierung von Daten
« Letzter Beitrag von Lachtaube am November 17, 2018, 14:13:25 »
Erstelle zunächst eine Vereinigungsabfrage (der Kürze wegen habe ich sie Q getauft).

SELECT LAGER,
       VDATUM   AS DATUM,
       'Abgang' AS Art,
       1        AS MENGE
FROM   tbl_A
UNION ALL
SELECT LAGER,
       KDATUM,
       'Zugang',
       1
FROM   tbl_A;

Auf Basis dieser Abfrage kommst Du dann mit einer Kreuztabellenabfrage zum Wunschergebnis.

TRANSFORM CLng(Nz(Sum(Q.MENGE), 0)) AS X
SELECT Year(Q.DATUM) AS Jahr,
       Q.LAGER
FROM   Q
GROUP  BY Year(Q.DATUM),
          Q.LAGER
PIVOT  Q.Art;

Wenn Du auf die 0-Werte verzichten kannst, genügt auch der einfache Summenausdruck Sum(Q.MENGE) in der Transform-Klausel.
9
Tabelle/Abfrage / Gruppierung von Daten
« Letzter Beitrag von Jochen1 am November 17, 2018, 13:38:42 »
Hallo,

leider stehe ich erneut auf dem Schlauch.

Ich habe (in Access 2010) eine "tblA", in der Zugänge und Abgänge eines Lagers mit dem jeweiligen Datum gespeichert werden.

In der "qryAnzahl_Zugang_pro_Jahr" werden die Anzahl der Zugänge pro Jahr und in der
"qryAnzahl_Abgang_pro_Jahr" die Anzahl der Abgänge pro Jahr ermittelt.

Nun möchte ich eine Abfrage erstellen, in der gruppiert nach den Jahren die Zugänge und Abgänge jeweils nach Lager gelistet werden, es soll etwa so wie in dem angehängten Bild aussehen.

Die zusammenfassende Abfrage „qryBewegung_pro_Jahr“ listet nun alles auf, gruppiert aber leider nicht zutreffend, so daß eine Liste mit 36 Zeilen herauskommt (statt 9).

Mir ist bewusst, dass ich es nicht zutreffend aufgebaut habe, aber ich bekomme es einfach nicht hin, dabei ist es vermutlich recht einfach.

Könnte mir bitte jemand einen Tip geben, wie ich diese Auflistung erreichen kann ?

Vielen Dank und Grüße,
Jochen
10
Access Programmierung / Re: VBA Projekt als Klassenbibliothek
« Letzter Beitrag von Lachtaube am November 17, 2018, 13:22:40 »
Externen COM-Bibliotheken lassen sich auch Reg-Free einbinden, indem man ein Manifest in die Bibliothek einbindet (ist bei Dot Net vermutlich sogar Pflicht) und für Access selbst ein externes Manifest verwendet. In VBA muss dann ein Aktivierungskontext (eine Instanz von Microsoft.Windows.ActCtx) verwendet werden. Mehr dazu unter Reg-Free COM at runtime via Microsoft.Windows.ActCtx. Alternativ sollte sich auch Olaf Schmidts DirectCOM.dll, die ohne Manifest-Gedöns auskommt, verwenden lassen.
Seiten: [1] 2 3 ... 10