Newsgroup: it.comp.lang.visual-basic
Titolo: Ordinalposition

Ciao a tutti
Innanzitutto spero che abbiate passato un buon Natale.
Ho un problemino che mi manda al manicomio.
Come faccio da programma (VB6) a modificare il valore Ordinalposition di un
campo in una tabella Access.
Da premettere che è un campo che creo già da programma, ma invece di
inserirlo alla fine della tabella (che già ho), lo aggiunge all'inizio e gli
attribuisce il valore Ordinalposition=0.
Mi aiutate per favore.
Grazie

 attribuisce il valore Ordinalposition=0.
a parte che un programma non dovrebbe interessarsi in modo particolare
dell'ordine in cui si presentano i campi di una tabella...
come hai fatto ad aggiungere il campo? io ho provato con l'istruzione sql
"ALTER TABLE" e me lo ha aggiunto alla fine, ma sinceramente non saprei
dire se è il comportamento standard o un caso.
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 dire se č il comportamento standard o un caso.
Mi spieghi meglio il tuo metodo ?
Io ho fatto + o - cosě (Dopo aver cercato e ricercato in google)
    Path = "C:\"
    sName = "Param_Utente"
    sRecord = "Anno_In_Corso"
    lLung = 4
    Dim mTable As New ADOX.Catalog
    Dim f As New ADOX.Column
    Dim i As Long
    Set cnSetup = New ADODB.Connection
    cnSetup.CursorLocation = adUseServer
    cnSetup.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & Path &
"Setup.mdb"
    mTable.ActiveConnection = cnSetup
    For i = 0 To mTable.Tables.Count - 1
        If mTable.Tables(i).Name = sName Then
            Exit For
        End If
    Next i
    If i < mTable.Tables.Count Then
        f.Name = sRecord
        f.Type = adChar
        f.Attributes = adColFixed
        f.DefinedSize = lLung
        f.Properties
        mTable.Tables(i).Columns.Append f
        If mTable.Tables(i).Columns(mTable.Tables(i).Columns.Count -
1).Properties.Count > 7 Then
            mTable.Tables(i).Columns(mTable.Tables(i).Columns.Count -
1).Properties(13) = True
        End If
    End If
Credo che nel mio caso devo lavorare sulle Properties ma non so come.
Grazie.


 campo in una tabella Access.
Dimmi almeno un motivo valido in base al quale serva davvero 
OrdinalPosition.
Se vuoi lavorare davvero con i database (si', lo so, per Access 
'database' e' una parola troppo grossa ;-), lascia perdere la posizione
delle colonne in tabella e fidati sempre e solo dell'ordine in
cui le scrivi nella tua istruzione sql di estrazione dati.
-- 
ciao, hal

 cui le scrivi nella tua istruzione sql di estrazione dati.
Quoto, ma anche usare i nomi al posto degli indici non è un'idea da
buttare :)
termoPilucco
-- 


 buttare :)
E se proprio si vogliono gli indici, almeno si usino
costanti 'parlanti' ;-)
-- 
ciao, hal

 cui le scrivi nella tua istruzione sql di estrazione dati.
Per i nuovi programmi sto facendo in questo modo.
Ciao e Buone feste.

 pare che non interessi a chi ha chiesto.
Beh potrebbe essermi utile, se trovi qlcosa mi fai un grosso piacere.
Cmq ti ringrazio e Buone Feste.



Ti allego un frammento di una prova che ho fatto per il problema di
avere i campi in ordine
Sono 3 soluzioni diverse.
Avevo il tuo stesso problema, ho estratto i dati dei nomi dei campi
secondo l'ordine esatto, mi sono fatto un array e poi l'ho utilizzato
per spazzolare il sorgente "una volta per tutte" sostituendo il numero
del campo con nome ritrovato (fine del problema).
Private Sub Command1_Click()
    If fTableError() Then Exit Sub
 
   Set cnn = New ADODB.Connection
   With cnn
      .Provider = "Microsoft.Jet.OLEDB.4.0;"
      .Open "Data Source=" + Me.txtDb + ";"
   End With
   Set cat = New ADOX.Catalog
   cat.ActiveConnection = cnn
   Set tbl = cat.Tables(Me.cmbTabe.Text)
   Debug.Print "Results using the OLEDB Provider and ADOX"
   For Each col In tbl.Columns
      Debug.Print col.Name
   Next
End Sub
Private Sub Command2_Click()
   Set cnn = New ADODB.Connection
   If fTableError() Then Exit Sub
   With cnn
      .Provider = "MSDASQL.1;"
      .Open "Driver={Microsoft Access Driver (*.mdb)};" & _
       "DBQ=" + Me.txtDb + ";"
   End With
   Set cat = New ADOX.Catalog
   cat.ActiveConnection = cnn
   Set tbl = cat.Tables(Me.cmbTabe.Text)
   Debug.Print "Results using the ODBC Driver and ADOX"
   For Each col In tbl.Columns
      Debug.Print col.Name; col.Type
   Next
End Sub
Private Sub Command3_Click()
   Dim rsSchema As ADODB.Recordset
   Dim fld As ADODB.Field
   Dim rCriteria As Variant
   Dim k As Integer
    If fTableError() Then Exit Sub
   Set cnn = New ADODB.Connection
   With cnn
      .CursorLocation = adUseClient
      .Provider = "Microsoft.Jet.OLEDB.4.0;"
      .Open "Data Source=" + Me.txtDb + ";"
 
   End With
   Set rsSchema = cnn.OpenSchema(adSchemaColumns, _
        Array(Empty, Empty, Me.cmbTabe.Text))
   rsSchema.Sort = "ORDINAL_POSITION"
   Debug.Print "Results using the OpenSchema method"
   While Not rsSchema.EOF
      Debug.Print rsSchema!COLUMN_NAME
      rsSchema.MoveNext
   Wend
End Sub
=======================================================================
Se mi vuoi scrivere togli le maiuscole
cteniza...@hotmail.com
=======================================================================