MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 14.05.2018, 14:50   #1
elias2000
Neuer Benutzer
Neuer Benutzer
Standard Acc2016 - Formular mit Bericht verknüpfen?

Hallo zusammen,

ich habe vor kurzem für meinen Chef einen Bericht mit Access 2016 designed, nur damit ihr grob Bescheid wisst, es ging dabei um eine Stundenrechnung, für Kunden, von uns auf dem sie sehen welche Projekte mit verschiedenen Tätigkeiten wie lange dauerten etc. so weit so gut, nun möchte mein Chef von mir ein Formular das grob so aussieht wie auf diesem Bild:14ed128f-4ad5-453b-8374-f366bf1acf66.jpeg

Also man wählt von bis aus, sucht sich dann einen von den aufs Datum reduzierten, übrig gebliebenen Kunden aus der von uns in dem oben angegebenen Zeitraum betreut wurde, ein Projekt, drückt auf den Button und erhält im Idealfall meinen Bericht, nur eben gefiltert auf die zuvor selektierten Kriterien aus dem Formular, ich weiß nicht ob bzw. wie das mit Access 2016 umsetzbar ist und bitte nun um eure Hilfe mir zumindest grob den Weg zum gewünschten Ergebnis zu zeigen, falls das so nicht umsetzbar ist könnt ihr mir eventuell einen anderen Weg empfehlen der zu einem ähnlichen Ergebnis führt? Vielen dank schon mal im voraus!

mit freundlichen Grüßen,

Elias
elias2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.05.2018, 15:05   #2
Maxel
MOF Guru
MOF Guru
Standard

Hallo,

prinzipiell sind Deine Wünsche sämtlich erfüllbar. Zeige uns bitte Deine Tabellenstruktur (Beziehungsbild).

__________________

Viele Grüße von Maxel

Nie aufhören anzufangen,
nie anfangen aufzuhören!
Maxel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.05.2018, 15:09   #3
elias2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

danke für die schnelle Antwort, ich ergänze dir das Morgen direkt sitze jetz leider schon im Zug
elias2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2018, 07:18   #4
elias2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hi Maxel,

ich hoffe du hast das gemeint, danke für deine Hilfe schon mal im Voraus.

Capture.PNG
elias2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2018, 11:38   #5
maikek
MOF Guru
MOF Guru
Standard

Moin,
du kannst den Filter relativ einfach setzen, indem du für den Bericht als Grundlage eine Abfrage nimmst und dort in die Kriterienzeilen zu den jeweiligen Feldern die entsprechenden Formularfelder einträgst:
Code:

Forms!DeinFormularname!DeinFeldname
Vorraussetzung dabei ist allerdings, dass das Formular geöffnet ist und die Such-/Filterfelder gefüllt sind.
Die zweite Variante wäre einen dynamischen Filterstring zu erzeugen und bei Buttonklick zum Öffnen des Berichts zu übergeben, etwa so:
Code:

Private Sub DeinButton_Click()
dim strFilter as string
dim strDatum as String

'Für Zahlenfelder:
If not isnull(Me.DeinFeld1) then
   strFilter = strFilter & " AND DeinTabellenfeld1 = " & Me.DeinFeld1
End if

'für Textfelder
If not isnull(Me.DeinFeld2) then
   strFilter = strFilter & " AND DeinTabellenfeld2 = '" & Me.DeinFeld2 & "'"
End if

'Für Datumsfelder
If not isnull(Me.DeinFeld3) then
   strDatum = Format(Me.DeinFeld3, "/#yyyy/-mm/-dd/#") 'hier Slash durch Backslash ersetzen
   strFilter = strFilter & " AND DeinTabellenfeld3 = " & strDatum
End if

'usw.

If len(strFilter) > 0 then 'im Filterstring ist etwas enthalten
   strFilter = mid(strFilter, 6) 'die ersten 5 Zeichen (" AND ) wegschneiden
Debug.Print strFilter 'zur Kontrolle im Direktfenster ausgeben
   DoCmd.OpenReport "DeinBerichtname", acViewPreview, , strFilter
end if

End Sub
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2018, 15:02   #6
elias2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Ok danke das war relativ hilfreich
elias2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 07:42   #7
elias2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

habe jetzt zurzeit einige Probleme meinen Filter String zu übergeben, habe das nach meinen wünschen umgebaut doch jetzt bekomme ich verschiedene fehler.
(Im VBA)

die fehler kannst du den anhängen entnehmen ich denke das ich das Datum iwie umformatieren muss, ich bitte um deine/ eure expertise ich stehe gerade auf der Leitung.

Hier die Fehlermeldung:
Fehlermeldung.PNG

Hier der Code:
code.PNG

Hier der FileString Inhalt:
Filterstring.PNG

Hier nochmal der Code reinkopiert ich habe keine Ahnung wie man das so "cool" macht wie maikek:

Private Sub Befehl13_Click()
Dim strFilter As String
Dim strDatum As String
Dim strDatum2 As Date
Dim strKunde As String

'Für Datums von
If Not IsNull(Me.datumvon) Then
'strDatum2 = CDate(strDatum)
strDatum = Format(Me.datumvon, "yyyy-MM-dd")
strFilter = strFilter & " AND dbo_zeitbuchungen.datum >= " & strDatum + " "


End If

'Für Datum bis
If Not IsNull(Me.datumbis) Then
'strDatum2 = CDate(strDatum)
strDatum = Format(Me.datumbis, "yyyy-MM-dd")
strFilter = strFilter & " AND dbo_zeitbuchungen.datum <= " & strDatum + " "
End If

'für Kunde
If Not IsNull(Me.kunde.Column(1)) Then
strKunde = Me.kunde.Column(1)
strFilter = strFilter & " AND dbo_kunden.kurzbez = """ & strKunde & """"
End If

'für Projekt
If Not IsNull(Me.projekt.Column(1)) Then
strFilter = strFilter & " AND dbo_projekte.id = " & Me.projekt
End If


If Len(strFilter) > 0 Then 'im Filterstring ist etwas enthalten
strFilter = Mid(strFilter, 6) 'die ersten 5 Zeichen (" AND ) wegschneiden
Debug.Print strFilter 'zur Kontrolle im Direktfenster ausgeben
DoCmd.OpenReport "Report", View:=acViewNormal, WhereCondition:=strFilter
End If

End Sub


VIELEN DANK FÜR JEDE HILFE IM VORAUS!! Dieses Forum ist echt Klasse wenn, danke nochmal an maikek du hast mir echt geholfen mit deinem Beispielcode
elias2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 07:45   #8
elias2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Ach ja bevor ich es vergesse, das Datum ist kein Kombifeld sondern ein ganz normales Datumsfeld.
Datum.PNG
elias2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 11:00   #9
JPA
MOF Koryphäe
MOF Koryphäe
Standard

Datum korrekt in sql übergeben.

VG
JPA
JPA ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 11:32   #10
maikek
MOF Guru
MOF Guru
Standard

Zitat:

Hier nochmal der Code reinkopiert ich habe keine Ahnung wie man das so "cool" macht wie maikek:

Oben rechts über dem Antwortfenster ist ein Icon für Code (links neben PHP und Key).
Die
Code:

+ " "
am Ende sind überflüssig, das Leerzeichen ist ja hier & " AND schon berücksichtigt.
Kannst du mal das Ergebnis von Debug.Print aus dem Direktfenster hier posten? Nach dem gezeigten Ausdruck sieht es so aus, als wenn das Datumsformat noch nicht richtig ist (s. auch Hinweis von JPA).
Die Backslash dabei durch Slash ersetzen, die Forensoftware entfernt sie sonst.
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 22.05.2018, 09:28   #11
elias2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Meldung aus dem Direktfenster für Debug.Print strFilter ich habs mit verschiedenen Variablen mehrfach probiert also nicht wundern ich schätze mal aus irgendeinem Grund wird im Debugfenster einfach nur Meldung + Meldung angehängt bis Access komplett neu gestartet ist^^

Code:

dbo_zeitbuchungen.datum >= 2018-05-12  AND dbo_zeitbuchungen.datum <= 2018-05-14 
dbo_zeitbuchungen.datum >= 2018-05-12  AND dbo_zeitbuchungen.datum <= 2018-05-14 
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
2018-05-14

00:00:00 
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
dbo_zeitbuchungen.datum >= 2018-05-12 AND dbo_zeitbuchungen.datum <= 2018-05-14
Hier nochmal der Ursprungscode:

Code:

Private Sub Befehl13_Click()
Dim strFilter As String
Dim strDatum As String
Dim strDatum2 As Date
Dim strKunde As String

'Für Datums von
If Not IsNull(Me.datumvon) Then
   'strDatum2 = CDate(strDatum)
strDatum = Format(Me.datumvon, "yyyy-MM-dd")
   strFilter = strFilter & " AND dbo_zeitbuchungen.datum >= " & strDatum
   
   
End If

'Für Datum bis
If Not IsNull(Me.datumbis) Then
   'strDatum2 = CDate(strDatum)
strDatum = Format(Me.datumbis, "yyyy-MM-dd")
   strFilter = strFilter & " AND dbo_zeitbuchungen.datum <= " & strDatum
End If

'für Kunde
If Not IsNull(Me.kunde.Column(1)) Then
    strKunde = Me.kunde.Column(1)
   strFilter = strFilter & " AND dbo_kunden.kurzbez =  """ & strKunde & """"
End If

'für Projekt
If Not IsNull(Me.projekt.Column(1)) Then
   strFilter = strFilter & " AND dbo_projekte.id = " & Me.projekt
End If


If Len(strFilter) > 0 Then 'im Filterstring ist etwas enthalten
   strFilter = Mid(strFilter, 6) 'die ersten 5 Zeichen (" AND ) wegschneiden
Debug.Print strFilter 'zur Kontrolle im Direktfenster ausgeben

DoCmd.OpenReport "Report", View:=acViewNormal, WhereCondition:=strFilter
   
End If

End Sub
Vielen Dank für deine Hilfe war im Urlaub darum so spät die Antwort.

Lg,

Elias
elias2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 22.05.2018, 09:51   #12
markusxy
MOF Meister
MOF Meister
Standard

Du wurdest bereits darauf hingewiesen, dass du das Datum nicht SQL konform formatierst.

Du solltest die Hinweise nicht ignorieren. Siehe:

http://www.donkarl.com/FAQ/FAQ6VBA.htm#6.8
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.