Access - SQL Problem!
SilK92
Gesendet: 10.06.15 20:38
Betreff: Access - SQL Problem!


New user

Beiträge: 1

Hallo,

ich komme bei unserer Datenbank nicht weiter...
Wir müssen eine Datenbank für einen Wildpark erstellen.
Dabei müssen wir etwas programmieren (eigentlich als Standartmodul) womit man einen Futterbestand vom Lager erhöhen bzw. verringern kann indem man auf den entsprechenden Button klickt.
Dann erfolgt eine Abfrage nach der Menge, die entnommen werden soll bzw. dazu addiert werden soll.
Davor soll der Benutzer noch die Futterart im Formular ausgewählt haben.
Der Bestand soll dann in der Tabelle wie auch im Formular, aktualisiert werden.

Wir haben kaum Übung, vielleicht kann sich jemand mal den Code anschauen...

Es gibt quasi 3 Tabellen: Futter, wird gelagert und Lager
In der Tabelle Futter steht die Futterart und die FutterID.
In der Tabelle wird gelagert steht die FutterID als Fremdschlüssel sowie der Futterbestand (und die LagerID als Fremdschlüssel).
In der Tabelle Lager steht die LagerID und der Lagerort.

Folgende Punkte bekommen wir nicht hin:

1. In die SQL Abfrage bei WHERE soll der Bestand vom ausgewählten Futter ausgesucht werden.
2. Der neue Bestand soll in der Tabelle aktualisiert werden.
3. Bei der Verringerung muss noch geprüft werden, ob überhaupt genug Futter im Bestand ist

(Hier der Code vom Entnahme-Button. Manche Sachen habe ich auskommentiert, es sind teilweise Ausdrücke die wir so in einem Beispielprogramm gesehen haben, aber nichts damit anfangen können)

Vielen vielen Dank für eure Hilfe!!!!! (Ich kann auch die gesamte Datei bereitstellen)

Hier der Code:

Private Sub Bestandplus_Click()

Dim dbs As DAO.Database 'auf DB verweisen

Dim str_SQL As String
Dim rst As DAO.Recordset 'Ergebnisvariable
Dim int_Anzahl As Integer
Dim int_Bestand As Integer
Dim int_neuerBestand As Integer


'On Error Resume Next
Set dbs = CurrentDb

int_Bestand = InputBox("Bestandserhöhung um:") 'Hier kann der Benutzer eingeben, um wie viel sich der Bestand erhöhen soll

int_Anzahl = 0
str_SQL = vbNullString
Set rst = Nothing

str_SQL = "Select [wird gelagert].[Futterbestand] "
str_SQL = str_SQL & "From [wird gelagert], [Futter] "
str_SQL = str_SQL & "Where [Futter].[Futterart] ='" & Me.Auswahl_Futterart.Value & "';" 'Die Textbox heißt Auswahl_Futterart

Set rst = dbs.OpenRecordset(str_SQL) 'Startknopf

int_neuerBestand = int_Bestand + rst.Fields(0) 'Hier wird der eingegebene Bestand + der alte Bestand addiert

MsgBox ("Der neue Bestand beträgt: " & int_neuerBestand) 'Der neue Bestand wird ausgegeben

str_SQL = "UPDATE [wird gelagert] " 'Hier habe ich versucht, den neuen Futterbestand in die Tabelle einzufügen (aktualisieren), das klappt so aber nicht
str_SQL = str_SQL & "SET [wird gelagert].[Futterbestand] = int_neuerBestand "
str_SQL = str_SQL & "WHERE [Futter].[Futterart] = '" & Me.Auswahl_Futterart.Value & "';"
dbs.Execute str_SQL


rst.MoveFirst
rst.MoveLast
int_Anzahl = rst.RecordCount
rst.MoveFirst

End Sub
Top of the page Bottom of the page