Hallo zusammen,
ist es möglich die Größe eines Datenfeldes (Text) einer Tabelle auszulesen.
Danke und Gruß Dieter
Hallo,
Dim rs As New ADODB.Recordset
rs.Open "select Textfeld1 from tblTabelle1", CurrentProject.Connection, adOpenStatic, adLockReadOnly
MsgBox rs.Fields("Textfeld1").DefinedSize
rs.close:set rs=Nothing
Oder so:
Private Function Feldlaenge(strTabelle As String, strFeld As String) As Integer
Dim tDef As TableDef
Dim Dbs As DAO.Database
Dim Rs As DAO.Recordset
Dim tFld As Field
Dim intSize As Integer
Set Dbs = CurrentDb
Set tDef = Dbs.TableDefs(strTabelle)
Set tFld = tDef.Fields(strFeld)
intSize = tFld.Size
Feldlaenge = intSize
set tFld = Nothing
set tDef = Nothing
set Dbs = Nothing
End Function
Hallo Shai, Hallo DF6GL(ist das deine Amateurfunklizenz?)
Mensch ihr beiden seit Klasse,
beide Codes funktionieren einwandfrei. Danke für diese Präziesen Beispiele, habt mir damit wieder einmal weitergeholfen.
Gruß Dieter
Hallo,
darf ich mal fragen, zu was man so etwas braucht?
Hallo MzKlMu hier nur ein Beispiel,
Wenn du ein ungebundenes Textfeld hast, das zu über eine Funktion abspeichern möchtest, sollte man überprüfen ob die Eingabe in die Feldgröße der Tabelle passt damit die Routine nicht durch einen Fehler aussteigt.
Gruß Dieter
Hallo,
dieses Problem kannst Du umgehen, in dem Du alle Textfelder auf eine Feldgröße von 255 stellst, dann musst Du gar nichts prüfen.
Access verwaltet den Speicherplatz dynamisch. Es wird nur so viel Speicher verbraucht als Zeichen eingetragen sind. Die Feldgröße spielt keine Rolle.
hallo MzKlMu,
Mit der Dynamischen Speicherverwaltung hast du natürlich recht. Aber ich finde, dass man die Größe eines Feldes auf die richtige Anzahl von Zeichen reduzieren soll, und es gibt bestimmt auch Gründe dafür, sonst hätte man auch die Angabe bei der Tabellenerstellung weglassen können.
Gruß Dieter