Newsgroup: it.comp.lang.visual-basic
Titolo: Creazione di Database...un bel casino !!!!

Buongiorno a tutti.......č da un po di giorni che sto provando a creare un
database senza l'ausilio di nessun controllo predefinito.
Per prima cosa creo il database poi creo la tabella poi i campi, accodo la
tabella all'insieme delle tabelle per finire apro il recordset. Ora fin qua
non ho nessun problema.
Il problema arriva quando devo riempirlo perchč molto probabilmente non ho
capito quando usare il metodo 'addnew' e il metodo 'Edit' o pių che altro
con quale evento.....poi non capisco dove si trova il puntatore  a quale
record sta puntando...esiste qualche propietā che mi possa aiutare ??? Spero
di essere stato chiaro .....
GRAZIE A TUTTI.........ANDREA

 GRAZIE A TUTTI.........ANDREA
--
_________________________
www.sasim.cjb.net
ESISTONO BANNER PUBBLICITARI DI QUALSIASI GENERE (NON OSCENO) in questo sito chi non li desiderasse è pregato di non entrare!
E' un sito di carattere personale, non tecnico!
Inoltre viene creato un Cookie Doubleclick che verrà immesso sul vostro HD. (facilmente rimovobile con programmi tipo
AD-AWARE)

 ha scritto
| esiste qualche propietą che mi possa aiutare ???
F1
___
Sei riuscito a creare una tabella da codice ma non riesci ad inserire nuovi dati???
Spiega meglio quello che fai (magari con del codice)...
Ti sconsiglio inoltre di usare DAO e di passare ad ADO...

 ha scritto nel messaggio
news:6EaM6.3137$0V5....@news2.tin.it...


record sta
puntando...esiste qualche propietà che mi possa aiutare ???
Non ho ben
capito che intendi...tu 'punti' a un record solo quando vuoi
vederlo...spiegami meglio che intendi.
Saluti...
--------------------------------
Inviato via 
http://usenet.iol.it
 

Andrea
CIAO SIMO
P.S.: Guarda il sito comune
 
http://www.it-lang-vb.net/docs/Manifesto.txt
e leggiti la parte che riguarda la formattazione dei Subject..eviterai l'ira
( :-) ) di molti e aiuterai tanta gente che ha il tuo stesso problema.


Con il codice che segue, inserito in un modulo di classe creo i miei
database. Come puoi notare non sfrutto tutte le funzionalitą ma puņ esserti
di esempio.
Public Function Creadatabase(Nome As String, Tabella As String, Indice As
Variant, Ncampi As Integer, NomeCampi As Variant, TipoCampi As Variant,
dimcampi As Variant) As Boolean
    Dim CntIdx As Integer
  Dim dbNew As Database
  Dim tdNew As TableDef
  Dim idxNew As Index
  Dim fldNew As Field
  Dim relNew As Relation
  Dim wsNew As Workspace
  Dim sqSQL As String
'Get default Workspace
  Set wsNew = DBEngine.Workspaces(0)
  On Error Resume Next
'Create database
  Set dbNew = wsNew.CreateDatabase(Nome, dbLangGeneral)
  If Err.Number <> 0 Then
    MakeNewDatabase = False
    Exit Function
  End If
  On Error GoTo 0
'Create table: "Gestione messaggi"
 Set tdNew = dbNew.CreateTableDef(Tabella)
With tdNew
    .Attributes = 0
    .Connect = ""
    .SourceTableName = ""
    .ValidationRule = ""
    .ValidationText = ""
End With
For I = 1 To Ncampi
    Set fldNew = tdNew.CreateField(NomeCampi(I - 1), TipoCampi(I - 1),
dimcampi(I - 1))
    With fldNew
        .Attributes = 2
        .DefaultValue = ""
        .OrdinalPosition = I
        .Required = False
        .ValidationRule = ""
        .ValidationText = ""
        If TipoCampi(I - 1) = dbInteger Or TipoCampi(I - 1) = dbLong Or
TipoCampi(I - 1) = dbDate Then
            Else
                .AllowZeroLength = True
        End If
    End With
    tdNew.Fields.Append fldNew
Next I
' Create Index
CntIdx = UBound(Indice)
If CntIdx > 0 Then
    Set idxNew = tdNew.CreateIndex("Pippo")
    For I = 1 To CntIdx
        idxNew.Fields.Append idxNew.CreateField(Indice(I))
    Next I
    tdNew.Indexes.Append idxNew
    tdNew.Indexes.Refresh
End If
  dbNew.TableDefs.Append tdNew
  dbNew.Close
  wsNew.Close
  MakeNewDatabase = True
End Function
Per creare un database faccio una chiamata del tipo
        DB.Creadatabase DBarc, Tabella, Indice, 13, NomeCampi, TipoCampi,
LungCampi
dove i parametri possono essere degli array del tipo dichiarato di seguito:
        Tabella = "Stazioni"
        NomeCampi(0) = "Stazione"
        NomeCampi(1) = "Localitą"
        NomeCampi(2) = "Comune"
        NomeCampi(3) = "Via"
        NomeCampi(4) = "Note"
        NomeCampi(5) = "Tipo Collegamento"
        NomeCampi(6) = "Porta seriale"
        NomeCampi(7) = "Velocitą"
        NomeCampi(8) = "Numero"
        NomeCampi(9) = "Tipo Strumento"
        NomeCampi(10) = "Tipo Antenna"
        NomeCampi(11) = "Altezza letta"
        NomeCampi(12) = "Tipo misura"
        TipoCampi(0) = dbText
        TipoCampi(1) = dbText
        TipoCampi(2) = dbText
        TipoCampi(3) = dbText
        TipoCampi(4) = dbText
        TipoCampi(5) = dbText
        TipoCampi(6) = dbText
        TipoCampi(7) = dbText
        TipoCampi(8) = dbText
        TipoCampi(9) = dbText
        TipoCampi(10) = dbText
        TipoCampi(11) = dbLong
        TipoCampi(12) = dbText
        LungCampi(0) = 20
        LungCampi(1) = 50
        LungCampi(2) = 50
        LungCampi(3) = 50
        LungCampi(4) = 250
        LungCampi(5) = 15
        LungCampi(6) = 10
        LungCampi(7) = 10
        LungCampi(8) = 20
        LungCampi(9) = 20
        LungCampi(10) = 20
        LungCampi(11) = 1
        LungCampi(12) = 1
        Indice(1) = "Stazione"
Spero di esserti stato di aiuto ..... a proposito, devi inserire il
controllo "Data" per usare questo codice.
Ciao, Claudio.

                  
http://www.it-lang-vb.net/docs/Manifesto.txt
se guardi bene il s.c., c'e' anche un mdb2bas che genera il codice per
ricreare un msb esistente.
se provi a mettere campi diversi nelle tabelle di un mdb, forse puo'
servire.
dao, a.

 ha scritto nel messaggio
news:9dredd$4ev$1...@pegasus.tiscalinet.it...

Ecco, forse ho capito: tu apri il DB solo se esiste! Se non esiste NON lo apri e lo crei.
Terminata la creazione del DB, lo devi aprire per poter effettuare degli aggiornamenti!
Private Sub Form_Load()
    Dim i As Integer
    If Dir("nuovodb.mdb") = "" Then
        Set dbase = CreateDatabase("nuovodb.mdb", dbLangGeneral)
        Set tabella = dbase.CreateTableDef("anag")
        With tabella
            .Fields.Append .CreateField("Id", dbLong, 9)
            .Fields(0).Attributes = dbAutoIncrField
            .Fields.Append .CreateField("Nome", dbText, 15)
            .Fields.Append .CreateField("Cognome", dbText, 20)
            For i = 0 To tabella.Fields.Count - 1
                .Fields(i).AllowZeroLength = True
                .Fields(i).Attributes = dbUpdatableField
            Next
        End With
        dbase.TableDefs.Append tabella
    End If
    Set dbase = OpenDatabase("nuovodb.mdb")


 | esiste qualche propietà che mi possa aiutare ???


 ha scritto
| Grazie ora o capito...!!!!! Un ultima domanda ho visto che nei vostri
| listati usate la  parola 'New' insieme a 'Set' se io non la uso che cosa
| cambia...
New serve ad istanziare un nuovo oggetto. Dato che quello che ti viene rstituito e' un
puntatore al nuovo oggetto, ti serve la parola chiave Set:
Dim rs as ADODB.Recordset
Set rs = New ADODB.Recordset
New e Set sono da usare con cautela (dato che creano una nuova istanza di un oggetto,
alloca memoria per quell'oggetto). Leggiti bene la guida al proposito...

 ha scritto nel messaggio
news:lJrM6.1375$8P3....@news1.tin.it...


 ha
|
| E se io non uso la parola New quali sono le differenze.......Grazie
|
