vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: Spaltengröße eines Tabellenfeldes ändern 
Autor: ModeratorDieter (Moderator)
Datum: 03.08.02 23:48

Hi Timo,

was Du machen könntest, ist folgendes:

  1. neues Feld anlegen (irgendein Name) mit der neuen Feldlänge
  2. Tabelle durchlaufen und Feldinhalte in das neue Feld schreiben
  3. altes Feld löschen
  4. neues Feld in alted Feld umbenennen
  5. OrdinalPosition entsprechend zurücksetzen

Das ganze sieht dann ungefähr wie folgt aus.
Das Beispiel ist allerdings für DAO - vielleicht kannst Du's ja dennoch gebrauchen bzw. nach ADO umsetzen.
' Feldgröße nachträglich ändern
Public Sub dbField_ChangeSize(Db As Database, _
  ByVal sTable As String, ByVal sField As String, _
  ByVal iNewSize As Integer)
 
  Dim oField As New Field
  Dim Rs As Recordset
  Dim iPosition As Integer
 
  With Db.TableDefs(sTable)
    <font color=green>' temporäres Feld erstellen</font>
    oField.Name = sField + "_tmp"
    oField.Type = dbText
    oField.AllowZeroLength = True
    oField.Size = iNewSize
    .Fields.Append oField
 
    <font color=green>' Tabelle öffnen und alten Feldinhalt ins</font>
    <font color=green>' neue temporäre Feld speichern</font>
    Set Rs = Db.OpenRecordset("SELECT " + sField + ", " + _
      sField + "_tmp FROM " + sTable)
    If Rs.RecordCount > 0 Then
      Do Until Rs.EOF
        Rs.Edit
        Rs(1) = Rs(0)
        Rs.Update
        Rs.MoveNext
      Loop
    End If
    Rs.Close
    Set Rs = Nothing
 
    <font color=green>' OrdinalPosition merken</font>
    iPosition = .Fields(sField).OrdinalPosition
 
    <font color=green>' altes Feld löschen</font>
    .Fields.Delete sField
 
    <font color=green>' neues temporäre Feld umbenennen</font>
    .Fields(sField + "_tmp").Name = sField
 
    <font color=green>' Ordinalposition wiederherstellen</font>
    .Fields(sField).OrdinalPosition = iPosition
  End With
End Sub
Cu
Dieter
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Spaltengröße eines Tabellenfeldes ändern51Timo03.08.02 20:27
Re: Spaltengröße eines Tabellenfeldes ändern282ModeratorDieter03.08.02 23:48
Danke Dieter !33Timo05.08.02 23:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel