Hallo Zusammen
Ich habe in einem Modul daten („FEV1“) errechnet. Das Ergebnis soll im Formular/tabelle „lufu_Exp“ übertragen werden.
Frage wie sieht der VBA Code in Access 2003 aus?
ist betimmt ganz einfach habe es nur vergessen.
Vielen Dank im Voraus
Manfred
Wenn du in einem Modul Daten errechnet hast, wirst du diese ja wahrscheinlich in eine Variable geschrieben haben. Dann brauchst du doch nur diese Variable an das
Formularfeld übergeben:
Form_Formularname.Formularfeld = Variable
Gruß
Stephan
Hallo Manfred,
ich bin leider nur ein selve made programmier. leider kann ich dir diesbezüglich nicht weiter helfen… schade.
Gruß
Hubert
Danke Stephan
es funktioniert aber leider nicht.
FEV1_berechnet = 67.25 ’ das ist der errechnete Wert in der Variable
der Formularname Frm_LUFU_EXP1
der Formularfeld: FEV1berechnet
wie ist die Syntax richtig
Form_Formularname.Formularfeld = Variable
Form_Frm_LUFU_EXP1.FEV1berechnet = FEV1_berechnet
Gruß
Manfred
Trotz dem Danke
Hallo,
Form_Frm_LUFU_EXP1.FEV1berechnet = FEV1_berechnet
sofern FEV1_berechnet deine Variable ist?
Ist gibt aber auch mehrere Möglichkeiten der Übergabe,
das kommt auch darauf an wie du dein Modul ausführst.
Wird es durch einen Button in dem Formular ausgeführt.
Vielleicht solltest du die Variable FEV1_berechnet einfach zu einer Public Variable machen, dann ist sie
von jedem Formular einlesbar.
Also die Variablen Deklarierung nicht in der Funktion im
Modul, sondern ausserhalb der Funktion irgendwo oben im Modul. So:
Public FEV1_berechnet As Double
Gruss Stephan
Hallo Manfred,
ich hab z.Zt. nur Access 2000, ich hoffe, der Code gilt für 2003 immer noch:
Public Function test()
Dim dbs As Database
Dim rs As Recordset
Set dbs = CurrentDb
Set rs = dbs.OpenRecordset(„SELECT * FROM Table1“)
If rs.RecordCount > 0 Then
rs.AddNew
rs![Field1] = „123“
rs![Field2] = „abc“
rs.Update
End If
rs.Close
End Function
Gruß, Johanna
Hallo stephn habe ich auch schon versucht.
hier der Code aus dem Modul Start.
Option Compare Database
Option Explicit
Public FEV1_berechnet As Double
'------------------------------------------------------------
’ Start
’
'------------------------------------------------------------
Function Start()
On Error GoTo Start_Err
’ Nein Start
DoCmd.Echo False, „Start“
’ Nein
DoCmd.SetWarnings False
'von BTK_LUFU_EXP nach LUFU_EXP1
DoCmd.CopyObject „“, „LUFU_EXP1“, acTable, „BTK_LUFU_EXP“
'**************** in einem anderen Modul errechneter Wert ***********************
FEV1_berechnet = 67.25
'--------------------------------------------------------------------------------
'— Wert (in das Formular Frm_LUFU_EXP1 bezieht sich auf die Tabelle „LUFU_EXP1“ Feld FEV1berechnet) eintragen -------
Form_Frm_LUFU_EXP1.FEV1berechnet = FEV1_berechnet
'-----------------------------------------------------------------------------
'Nach Abschluß der Aktion stehen die Daten in der Tabelle,
'aber Access zeigt einen blauen Bildschirm hat sich aufgehängt.
Start_Exit:
Exit Function
Start_Err:
MsgBox Error$
Resume Start_Exit
End Function
Vieleicht erkennts Du die Fehler Ursache blauen Bildschirm und das sich Access aufgehängt hat.
Gruß
Manfred
Hallo,
so würde ich es machen:
Das steht in deinem Modul Start:
(das muß raus DoCmd.Echo False, „Start“)
Option Compare Database
Option Explicit
Public FEV1_berechnet As Double
'------------------------------------------------------------
’ Start
’
'------------------------------------------------------------
Function Start()
On Error GoTo Start_Err
’ Nein Start
’ Nein
DoCmd.SetWarnings False
'von BTK_LUFU_EXP nach LUFU_EXP1
DoCmd.CopyObject „“, „LUFU_EXP1“, acTable, „BTK_LUFU_EXP“
'**************** in einem anderen Modul errechneter Wert
***********************
FEV1_berechnet = 67.25
'--------------------------------------------------------------------------------
'— Wert (in das Formular Frm_LUFU_EXP1 bezieht sich auf die
Tabelle „LUFU_EXP1“ Feld FEV1berechnet) eintragen -------
'-----------------------------------------------------------------------------
'Nach Abschluß der Aktion stehen die Daten in der Tabelle,
'aber Access zeigt einen blauen Bildschirm hat sich
aufgehängt.
Start_Exit:
Exit Function
Start_Err:
MsgBox Error$
Resume Start_Exit
End Function
Dann steht in deinem Formular mit deinem Feld ein
Button mit dem Namen starteStart ein Prozedur
BeimKlicken: Das sieht dann so aus:
Private Sub starteStart_Click()
Start.Start
Form_Frm_LUFU_EXP1.FEV1berechnet = FEV1_berechnet
End Sub
Dann geht alles.
Gruß Stephan
Hallo Johanna,
der Code hift mir schon weiter, nur sollen die Daten in den 1.Datensatz In der Tabelle gibt es nur einen Datensatz geschrieben werden.
mit rs.AddNew wird ein neuer Datensatz erzeugt.
Kann Du die o.a. Funktion so aendern, daß sich
rs![Field1] und rs![Field2] nur den 1.Datensatz ändern.
Ich bin daran gescheitert.
Gruß
Manfred
Hi Manfred,
probier’s mal statt dem rs.AddNew mit rs.Edit , damit bearbeitest Du den Datensatz, auf dem der Cursor gerade steht.
Falls Du erst einen bestimmten Datensatz suchen musst, kannst Du z.B. rs.FindFirst("[Fiel1]=‚abc‘") oder rs.MoveFirst verwenden.
Gruß,
Johanna
Hallo Johanna
Danke es hat geklappt
Gruß
Manfred