Hallo Freunde!
Für meine spezielle Art der Erstellung und dem Schreiben und Lesen von Access-Datenbanken brauche ich wieder Hilfe.
Ich erstelle eine neue Access-Datenbank aus den Infos einer Structure:
Das funktioniert soweit auch einwandfrei.
Nun möchte ich einen Datensatz in der Datenbank updaten und möchte dafür auch wieder alle Datensätze anhand der infos aus der "structure" verwenden.
Folgender Code funktioniert schon einmal, wenn ich als Werte (testweise) Zahlen oder Strings einsetze.
Aufgabenstellung die ich noch nicht hinbekommen habe:
Ich bauche z.b. die Information aus der Variable TempStruct1.BildschirmName.
.BildschirmName ist jedoch als Elementname in einer Variable (TempFieldName ) abgelegt.
Nun müsste ich den Ausdruck also in der Art wie TempStruct1.NameAusVariableTempFieldName umwandeln.
Geht das irgendwie eine Variable als "Programmierausdruck" zu verwenden?
Sollte ich mich unverständlich ausgedrückt haben, bitte nachfragen.
Für meine spezielle Art der Erstellung und dem Schreiben und Lesen von Access-Datenbanken brauche ich wieder Hilfe.
Ich erstelle eine neue Access-Datenbank aus den Infos einer Structure:
Das funktioniert soweit auch einwandfrei.
Nun möchte ich einen Datensatz in der Datenbank updaten und möchte dafür auch wieder alle Datensätze anhand der infos aus der "structure" verwenden.
Folgender Code funktioniert schon einmal, wenn ich als Werte (testweise) Zahlen oder Strings einsetze.
Aufgabenstellung die ich noch nicht hinbekommen habe:
Ich bauche z.b. die Information aus der Variable TempStruct1.BildschirmName.
.BildschirmName ist jedoch als Elementname in einer Variable (TempFieldName ) abgelegt.
Nun müsste ich den Ausdruck also in der Art wie TempStruct1.NameAusVariableTempFieldName umwandeln.
Geht das irgendwie eine Variable als "Programmierausdruck" zu verwenden?
Sollte ich mich unverständlich ausgedrückt haben, bitte nachfragen.
VB.NET-Quellcode
- Public Sub SchreibeBedienerDatenbank(ZuAktualisierenderBediener As Integer, DatenBankPasswort As String, DatenStruktur As Object)
- 'Hier den aktuellen Bediener in die Datenbank schreiben
- If ZuAktualisierenderBediener = 0 Then Exit Sub
- Dim sql As String
- Dim cmd As OleDbCommand
- Dim conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & FlexX_Datenverzeichnis + "user.mdb" & "; Jet OLEDB:Database Password=" & "" & ";")
- conn.Open()
- Dim TempStruct1 As New BedienerStructure
- TempStruct1 = Bediener(ZuAktualisierenderBediener)
- Dim TempFieldType As String
- Dim TempFieldName As String
- sql = "Update Bediener Set"
- For Each fi_1 As System.Reflection.FieldInfo In DatenStruktur.GetType().GetFields
- TempFieldType = fi_1.FieldType.ToString
- TempFieldName = fi_1.Name 'Feldname (z.B. "BildschirmName")
- Select Case TempFieldType
- Case "System.String"
- sql += " " + TempFieldName + "='" + TempStruct1.BildschirmName + "'," 'hier weis ich nicht, wie ich .Bildschirmname durch den Wert von fi_1.name ersetzen kann
- Case "System.Boolean"
- sql += " " + TempFieldName + "=" + "FALSE,"
- Case "System.Int32"
- sql += " " + TempFieldName + "=" + "1,"
- Case "System.Double"
- sql += " " + TempFieldName + "=" + "2,"
- Case "System.DateTime"
- sql += " " + TempFieldName + "='" + CStr(Now()) + "',"
- End Select
- Next
- sql = Left$(sql, Len(sql) - 1) + " Where ID=" + CStr(ZuAktualisierenderBediener)
- MsgBox(sql)
- 'sql = "Update Bediener Set " + _
- ' "Name='" + Bediener(ZuAktualisierenderBediener).Name + "', " + _
- ' "BildschirmName='" + Bediener(ZuAktualisierenderBediener).BildschirmName + "', " + _
- ' "AnmeldeCode1='" + Bediener(ZuAktualisierenderBediener).AnmeldeCode1 + "', " + _
- ' "AnmeldeCode2='" + Bediener(ZuAktualisierenderBediener).AnmeldeCode2 + "', " + _
- ' "AnmeldeCode3='" + Bediener(ZuAktualisierenderBediener).AnmeldeCode3 + "', " + _
- ' "ManagerRecht=" + CStr(Bediener(ZuAktualisierenderBediener).ManagerRecht) + " Where ID=" + CStr(ZuAktualisierenderBediener)
- cmd = New OleDbCommand(sql, conn)
- cmd.ExecuteNonQuery()
- conn.Close()
- End Sub
Liebe Grüße
Roland Berghöfer
Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
Roland Berghöfer
Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at