Newsgroup: it.comp.appl.access
Titolo: Alter table

Ciao a tutti,
vorrei modificare da codice una tabella esterna.
Ho provato così ma qualcosa non funziona.
Qualcuno sa darmi un aiutino?
 
Ho creato un modulo chiamato NuovoCampoVarie e l'ho compilato così:
 
Public Sub NuovoCampoVarie()
 On Error Resume Next
 
 
    Dim dbs As Database
    Dim tdf As TableDef, fld1 As Field
    Dim i As Integer
 
    Set dbs = OpenDatabase("z:\Iris\Iris_be.mdb")
 
 
    For i = 1 To dbs.TableDefs.Count
 
    If dbs.TableDefs(i).Name = "Costi" Then
 
    Set tdf = dbs.TableDefs(i)
    Exit For
    End If
    Next i
 
    Set fld1 = tdf.CreateField("Varie", euro)
    tdf.Fields.Append fld1
    Set dbs = Nothing
    Exit Sub
 
End Sub
 
poi ho creato un pulsante al quale ho scritto questo codice:
Private Sub AggiungiCampoVarie_Click()
On Error GoTo Err_AggiungiCampoVarie_Click
 
 
    If Me.Ute = "admin" Then
    Call NuovoCampoVarie
 
 
    End If
 
 
Exit_AggiungiCampoVarie_Click:
    Exit Sub
 
Err_AggiungiCampoVarie_Click:
    Resume Next
    Resume Exit_AggiungiCampoVarie_Click
 
End Sub
 
Dove ho sbagliato?
Grazie a chi mi sa rispondere...

 ...
 
Senza questa riga cattiva
 >   On Error Resume Next
VBA ti abbia gi� detto dove sbagli.
 
Un tipo "euro" non esiste. Prova con:
 
Set fld1 = tdf.CreateField("Varie", dbCurrency)
 
Se vuoi solo lavorare con questa tabelle il ciclo non serve e puoi 
sostituire
 
 >      For i = 1 To dbs.TableDefs.Count
 >
 >      If dbs.TableDefs(i).Name = "Costi" Then
 >
 >      Set tdf = dbs.TableDefs(i)
 >      Exit For
 >      End If
 >      Next i
 
con
 
Set tdf = dbs.TableDefs("Costi")
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
Access Lobby: 
http://www.AccessDevelopers.org
 


Grazie per l'aiuto,
ora è cambiato l'errore che mi dice:
errore di compilazione:
Utilizzo non valido di property
 
Come mai?

 Come mai?
 
Incolla il tuo codice attuale e mostra la riga dove succede l'errore.


 
Ho creato un modulo che si chiama NuovoCampoVarie così:
 
Public Sub NuovoCampoVarie()
 On Error Resume Next
 
 
    Dim dbs As Database
    Dim tdf As TableDef, fld1 As Field
    Dim i As Integer
 
    Set dbs = OpenDatabase("z:\Iris\Iris_be.mdb")
 
 
    Set tdf = dbs.TableDefs("Costi")
 
    Set fld1 = tdf.CreateField("Varie", dbCurrency)
    tdf.Fields.Append fld1
    Set dbs = Nothing
    Exit Sub
 
End Sub
 
e da una maschera su caricamento ho scritto
Call NuovoCampoVarie
 
Non capisco...


 Non capisco...
 
Togli il *§$%&* "On Error Resume Next" e usa una gestione di errore 
ragionevole. Altrimenti VBA non ti puo dire dove succedono errori.



Ho cambiato nome al modulo e ho modificato la gestione dell'errore così ma non cambia nulla.
Public Sub NuovoCampoVarie()
 On Error GoTo Err_NuovoCampoNote
 
 
    Dim dbs As Database
    Dim tdf As TableDef, fld1 As Field
    Dim i As Integer
 
    Set dbs = OpenDatabase("z:\Iris\Iris_be.mdb")
 
 
    Set tdf = dbs.TableDefs("Costi")
 
    Set fld1 = tdf.CreateField("Varie", dbCurrency)
    tdf.Fields.Append fld1
    Set dbs = Nothing
    Exit Sub
 
Err_NuovoCampoNote:
    MsgBox Err.Description
    Resume Exit_NuovoCampoNote
 
End Sub
 
???

 End Sub
 
Ti dovrebbe dare un errore perch� Exit_NuovoCampoNote non esiste.
Se prima ricevi un altro errore forse dipende della chiamata/posizione.
Prova se puoi eseguire la sub cos�:
 
- premi Ctrl + G
- nella finestrina scrivi: NuovoCampoVarie
- premi Enter



Ho provato come mi hai detto e mi da l'errore:
Errore di compilazione
Sub o function non definita


Ho anche provato a vedere nei riferimenti:
Option private function non è attivata...
 

>>>>  
http://www.bb2002.it
 :)  <<<<<
........... [ al lavoro ] ...........