Neuigkeiten:

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

Mobiles Hauptmenü

Abfragedaten von Formular übernhmen

Begonnen von itil07, Juni 20, 2011, 12:25:04

⏪ vorheriges - nächstes ⏩

itil07

hallo,

anbei die datenbank.
denke, dass sie jetzt bis auf die abfrage fertig ist. kleinigkeiten muss ich noch machen aber ansich funktionsfähig wie ich sie mri vorgestellt habe :-). nochmals vielen dank für die vielen tipps!!!



[Anhang gelöscht durch Administrator]

itil07

#31
Guten Morgen,

alsoo das Codeing der Abfrage habe ich bereits angepasst. keine fehlermeldung, keine reaktion :-(


Private Sub cmd_start2_Click()


'Abfragefundament erstellen
strSQL = "SELECT Status.Statusbezeichnung, Personendaten.Nachname, Abteilung.Abteilungsname, Bereich.Bereichsname, " & _
         "Ber_System.Systembezeichnung, Berechtigungen.Berechtigung, Zustaendigkeit.Zustaendigkeit " & _
         "FROM Zustaendigkeit INNER JOIN (Status INNER JOIN ((Bereich INNER JOIN (Abteilung INNER JOIN Personendaten " & _
         "ON Abteilung.Abteilung_ID = Personendaten.Abteilung_FK) ON Bereich.Bereichsnummer = Personendaten.Bereich_FK) " & _
         "INNER JOIN (Berechtigungen INNER JOIN (Ber_System INNER JOIN Ber_Haupt ON Ber_System.ID_System = Ber_Haupt.System_FK) " & _
         "ON Berechtigungen.ID_Berechtigungen = Ber_Haupt.Berechtigung_FK) " & _
         "ON Personendaten.Konfigurationsnummer = Ber_Haupt.Verantwortlicher_FK) " & _
         "ON Status.ID_Status = Personendaten.Status_FK) " & _
         "ON Zustaendigkeit.ID_Zustaendigkeit = Ber_Haupt.Zustaendigkeit_FK"

'Auswahlkriterien sammeln
'status
If Not IsNull(Me!komb_status) Then
    strKrit = "Status_FK=" & Me!komb_status
End If
'bereich
If Not IsNull(Me!komb_bereich) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Bereich_FK=" & Me!komb_bereich
    Else
        strKrit = "Bereich_FK=" & Me!komb_bereich
    End If
End If
'abteilung
If Not IsNull(Me!komb_abteilung) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Abteilung_FK=" & Me!komb_abteilung
    Else
        strKrit = "Abteilung_FK=" & Me!komb_abteilung
    End If
End If
'nachname
If Not IsNull(Me!komb_nachname) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Nachname=" & Me!komb_nachname
    Else
        strKrit = "Nachname=" & Me!komb_nachname
    End If
End If
'berechtigung
If Not IsNull(Me!komb_berechtigung) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Berechtigung=" & Me!komb_berechtigung
    Else
        strKrit = "Berechtigung=" & Me!komb_berechtigung
    End If
End If
'System
If Not IsNull(Me!komb_system) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND System=" & Me!komb_bsystem
    Else
        strKrit = "System=" & Me!komb_system
    End If
End If
'zuständigkeit
If Not IsNull(Me!komb_zustaendigkeit) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Zustaendigkeit=" & Me!komb_zustaendigkeit
    Else
        strKrit = "Zustaendigkeit=" & Me!komb_zustaendigkeit
    End If
End If

'Kriterienstring zusammensetzen
If strKrit <> "" Then
    strKrit = " WHERE " & strKrit & ";"
Else
    strKrit = ";"
End If

'Abfragefundament und Kriterien zusammensetzen
strSQL = strSQL & strKrit

'die SQL der 'abfr_Berechtigungen' zuweisen
CurrentDb.QueryDefs("abrf_Berechtigungen").SQL = strSQL
End Sub


liegt hier der fehler?

lg

database

Hallo,

kann es sein, dass hier der Name der Abfrage nicht stimmt?

'die SQL der 'abfr_Berechtigungen' zuweisen
CurrentDb.QueryDefs("abrf_Berechtigungen").SQL = strSQL

itil07

hallo,

ansich hätte das geschimmt, habe aber jetzt ie abfrage in abfr. umbenannt und es wie empholen geändert.. aber noch immer absolut gar keine reaktion :-(.

in der abfrage selbst muss ja jetzt unter den werten nciht mehr stehen wo sie sich die daten herholen sollen (forms.berechtigungsabfrage.usw) oder? weil ist ja alles im codeing angegeben oder?

anbei die aktuelle DB.
hoffe ihr könnt helfen...

[Anhang gelöscht durch Administrator]

itil07

habe den fehler selbst gefudnen :-)).
die abfrage muss dann noch geöffnet werden.. :-)
und da wirds dann so angezeigt wie ausgewählt :-)

itil07

hallo,

hmm leider läufts noch immer nicht so wie ichs mir vorstelle.
berechtigugnsabfrage.
status: funktinioert einwandfrei!
bereich: Laufzeitfehler 3075, Syntaxfehler (fehlender Operator) in Abfrageausdruck "WHERE Bereich_FK=2"
abteilung: funktioniert einwandfrei!
nachname: Datentypenkonfligt in Kriterienausdruck. (OK) ODER: Laufzeitfehler 3075 wie oben nur "WHERE Nachname=11223"
Berechtigung: Laufzeitfehler 3075 "Where Berechtigung=2"
System = Kommt inputbox zum eingeben von system..
zustaendigkeit.. laufzeitfehler 3075 where system=3

habe nichts geändert, es hat nur nie funktinioert.. habe imme rnur mit status bisher gearbeitet.

hoffe ihr könnt mir helfen worans liegt weil where sollte doch stimmen denke ich..?

danke schon mal, anbei die jetzige version meiner datenbank.


[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

--Bei Textvergleichen muss der Kriteriumswert in Hochkommata stehen.

If Not IsNull(Me!komb_nachname) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Nachname='" & Me!komb_nachname & "'"
    Else
        strKrit = "Nachname= '" & Me!komb_nachname & "'"
    End If
End If




--Name "System" falsch geschrieben ---> "System_FK"



If Not IsNull(Me!komb_system) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND System_FK =" & Me!komb_system
    Else
        strKrit = "System_FK =" & Me!komb_system
    End If
End If

database

#37
Hallo,

wobei das ...

If Not IsNull(Me!komb_nachname) Then
   If strKrit <> "" Then
       strKrit = strKrit & " AND Nachname='" & Me!komb_nachname & "'"
   Else
       strKrit = "Nachname= '" & Me!komb_nachname & "'"
   End If
End If


... auch nicht richtig laufen wird, da die gebundene Spalte im komb_nachname die Konfigurationsnummer der Tabelle 'Personendaten' ist.

Daher SOLLTEST du entweder als Kriterium


If Not IsNull(Me!komb_nachname) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Konfigurationsnummer=" & Me!komb_nachname
    Else
        strKrit = "Konfigurationsnummer=" & Me!komb_nachname
    End If
End If

um den Vergleich per Primärschlüssel zu erledigen,

oder


If Not IsNull(Me!komb_nachname) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Nachname='" & Me!komb_nachname.Column(1) & "'"
    Else
        strKrit = "Nachname= '" & Me!komb_nachname.Column(1) & "'"
    End If
End If

um den Namen zu vergleichen, angeben

HTH

itil07

hallo,

alsoooo das mit dem nachnamen klappt jetzt echt super :-)) bin echt happy.
jetzt habe ich nur noch zwei kleine problemchen:

Problem mit Zustaendigkeit (Beispiel: ITIL) = Datentypenkonflikt in Kriterienausdruck
Problem mit Berechtigung (Beispiel: Remote) = Datentypenkonflikt in Kriterienausdruck (Where Berechtigung=4)

'berechtigung
If Not IsNull(Me!komb_berechtigung) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Berechtigung=" & Me!komb_berechtigung
    Else
        strKrit = "Berechtigung=" & Me!komb_berechtigung
    End If
End If

If Not IsNull(Me!komb_zustaendigkeit) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Zustaendigkeit=" & Me!komb_zustaendigkeit
    Else
        strKrit = "Zustaendigkeit=" & Me!komb_zustaendigkeit
    End If
End If


danke schon mal!

lg

DF6GL

Hallo,


Wenn es sich bei "Berechtigung" und "Zustaendigkeit" um Text handelt , dann lies nochmal meinen letzten Beitrag...


itil07

danke für den tipp.
habs jetzt unter hochkomma gesetzt, klapper aber nochi mmer nicht :-(

'berechtigung
If Not IsNull(Me!komb_berechtigung) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Berechtigung='" & Me!komb_berechtigung & "'"
    Else
        strKrit = "Berechtigung='" & Me!komb_berechtigung & "'"
    End If
End If
'System
If Not IsNull(Me!komb_system) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND System_FK=" & Me!komb_system
    Else
        strKrit = "System_FK=" & Me!komb_system
    End If
End If
'zuständigkeit
If Not IsNull(Me!komb_zustaendigkeit) Then
    If strKrit <> "" Then
        strKrit = strKrit & " AND Zustaendigkeit='" & Me!komb_zustaendigkeit & "'"
    Else
        strKrit = "Zustaendigkeit='" & Me!komb_zustaendigkeit & "'"
    End If
End If

database

#41
Hallo,

das kann auch so nicht funktionieren, da du in der Spaltenliste der Abfrage die Textfelder der verbundenen Tabellen stehen hast und nicht deren Fremschlüssel!

Versuche daher mal folgendes:


'berechtigung
If Not IsNull(Me!komb_berechtigung) Then
   If strKrit <> "" Then
       strKrit = strKrit & " AND Berechtigung='" & Me!komb_berechtigung.Column(1) & "'"
   Else
       strKrit = "Berechtigung='" & Me!komb_berechtigung.Column(1) & "'"
   End If
End If
'System
If Not IsNull(Me!komb_system) Then
   If strKrit <> "" Then
       strKrit = strKrit & " AND Systembezeichnung='" & Me!komb_system.Column(1) & "'"
   Else
       strKrit = "Systembezeichnung='" & Me!komb_system.Column(1) & "'"
   End If
End If
'zuständigkeit
If Not IsNull(Me!komb_zustaendigkeit) Then
   If strKrit <> "" Then
       strKrit = strKrit & " AND Zustaendigkeit='" & Me!komb_zustaendigkeit.Column(1) & "'"
   Else
       strKrit = "Zustaendigkeit='" & Me!komb_zustaendigkeit.Column(1) & "'"
   End If
End If



HTH

p.s. Die obige Variante funktioniert mit der DB aus #35 Wenn die restlichen Einstellungen ebenfalls auf die Abfragefelder angepasst wurden (Statusbezeichnung, Abteilungsname, ...) !!