+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Migrazione dati

  1. #1
    gene50 non è in linea Scolaretto
    Post
    194
    Ciao, desidero far migrare i miei dati da dile *.dbf in file *.mdb, per provare a velocizzare le mie applicazioni.
    Chi mi può aiutare ad indirizzarmi verso un articolo dettagliato sulla creazione di file mdb oppure, meglio ancora, ad ottenere un progetto di creazione di file mdb già pronto.
    Grazie, gene.
    gene

  2. #2
    gene50 non è in linea Scolaretto
    Post
    194
    Sono riuscito a realizzare la cosa con un codice come questo che funziona:

    Dim wksPredef As Workspace
    Dim dbsRubrica As Database
    Dim tdfRubrica As TableDef
    Dim qdfRubrica As QueryDef
    Dim rsRubrica As Recordset
    Dim dbsRubricaOld As Database
    Dim rsRubricaOld As Recordset
    Dim Campo As Field

    Private Sub Form_Load()
    ' apre il Workspace default di MS Jet
    Set wksPredef = DBEngine.Workspaces(0)

    ' Crea un nuovo oggetto Database, lo salva su disco e lo apre come Database 'corrente
    Set dbsRubrica = wksPredef.CreateDatabase("c:\prova" & "\ciccio.mdb", dbLangGeneral)
    ' Crea un nuovo oggetto TableDef.
    Set tdfRubrica = dbsRubrica.CreateTableDef("Rubrica")
    ' Crea i campi e li accoda al nuovo oggetto TableDef.
    With tdfRubrica
    Set Campo = .CreateField("Data_p", dbDate, 8)
    .Fields.Append Campo
    Set Campo = .CreateField("mini", dbSingle, 7)
    .Fields.Append Campo
    Set Campo = .CreateField("maxi", dbSingle, 7)
    .Fields.Append Campo
    Set Campo = .CreateField("fer", dbSingle, 7)
    .Fields.Append Campo
    Set Campo = .CreateField("pert", dbSingle, 7)
    .Fields.Append Campo
    Set Campo = .CreateField("volu", dbLong, 6)
    .Fields.Append Campo
    Set Campo = .CreateField("m12", dbSingle, 8)
    .Fields.Append Campo
    Set Campo = .CreateField("m21", dbSingle, 8)
    .Fields.Append Campo
    Set Campo = .CreateField("m65", dbSingle, 8)
    .Fields.Append Campo
    Set Campo = .CreateField("m200", dbSingle, 8)
    .Fields.Append Campo
    End With
    ' accoda il nuovo oggetto all'insieme TableDefs
    dbsRubrica.TableDefs.Append tdfRubrica
    Label1.Caption = "Creazione di Rubrica1.mdb effettuata"
    Label1.Visible = True

    ' chiude il Database
    dbsRubrica.Close
    End Sub

    però ho due domande:
    -se con access digito una data in formato gg-mm-aaaa la trasforma in mm/gg/aaaa, come far accettare il formato desiderato, sia come posizione dei gg e dei mm che del segno divisorio da / a -?
    - se con access digito per il campo volu che ho fissato in lunghezza 6 mi accetta anche numeri di maggiore dimensione: come fare per limitare effettivamente a 6 cifre?
    Grazie, gene
    gene

  3. #3
    Post
    4,741
    Blogs
    12
    Ciao Gene50,
    Il formato della Data puo' essere impostato direttamente da Access in modalita Visualizza Struttura della Tabella interessata. Per la lunghezza del Campo e' strano, dovrebbe funzionare. [img]smileys/smiley11.gif[/img]

    Comunque questo argomento e' veramente interessante, se riesci a completare il codice, potresti scriverci su' un Tutorial per la Community [img]smileys/smiley32.gif[/img] che ne pensi ?

    Fammi sapere [img]smileys/smiley2.gif[/img]

  4. #4
    gene50 non è in linea Scolaretto
    Post
    194
    Quote Originariamente inviato da Master85
    Ciao Gene50,
    Il formato della Data puo' essere impostato direttamente da Access in modalita Visualizza Struttura della Tabella interessata. Per la lunghezza del Campo e' strano, dovrebbe funzionare. [img]smileys/smiley11.gif[/img]

    Comunque questo argomento e' veramente interessante, se riesci a completare il codice, potresti scriverci su' un Tutorial per la Community [img]smileys/smiley32.gif[/img] che ne pensi ?

    Fammi sapere [img]smileys/smiley2.gif[/img]
    Per la data per ora dopo avere creato il file e la table, in VB6, sono uscito, aperto access e provato a digitare.Lo scopo finale è quello di far traslocare, in automatico, date provenienti da file dbase che sono già in formato gg-mm-aaaa, quindi prima della migrazione desideravo lumi sulla cosa.
    Per quanto riguarda i numeri ritengo che la cosa dipenda dall'avere dichiarato il campo volu di tipo dblong che comunque accetterebbe valori anche superiori alle 6 cifre proprio per essere long, anche qui mi serve aiuto.
    Ti ringrazio per la proposta, per ora, essendo un principiante, almeno in vb6, permettimi di fare domande.
    In clipper sono molto più esperto, in ogni caso sarò lieto di mettere a fattor comune i miei risultati.
    Ciao, gene.
    gene

  5. #5
    L'avatar di Nick
    Nick non è in linea Scribacchino
    Luogo
    Italy
    Post
    628
    Ciao Gene [img]smileys/smiley1.gif[/img]

    Complimenti per la scelta. [img]smileys/smiley2.gif[/img]

    Per quanto riguarda il tuo quesito sui numeri, devi tener conto che in Access sono memorizzati in virgola mobile, quindi il numero di cifre decimali che indichi nel box proprietà riguarda soltanto la visualizzazione e non la memorizzazione.

    Per ottenere una memorizzazione precisa alla cifra decimale che desideri devi adoperare il tipo campo "Valuta" invece di quello numerico, in quanto la valuta utilizza la virgola fissa.

    Se, invece, ti riferivi alle cifre intere, mi dici dove hai settato il parametro = 6?

    A presto.
    nick.

  6. #6
    gene50 non è in linea Scolaretto
    Post
    194
    Quote Originariamente inviato da Nick
    Ciao Gene [img]smileys/smiley1.gif[/img]

    Complimenti per la scelta. [img]smileys/smiley2.gif[/img]

    Per quanto riguarda il tuo quesito sui numeri, devi tener conto che in Access sono memorizzati in virgola mobile, quindi il numero di cifre decimali che indichi nel box proprietà riguarda soltanto la visualizzazione e non la memorizzazione.

    Per ottenere una memorizzazione precisa alla cifra decimale che desideri devi adoperare il tipo campo "Valuta" invece di quello numerico, in quanto la valuta utilizza la virgola fissa.

    Se, invece, ti riferivi alle cifre intere, mi dici dove hai settato il parametro = 6?

    A presto.
    nick.
    Ciao Nick a ben risentirti.
    Il paramentro 6 l'ho settato in:
    Set Campo = .CreateField("volu", dbLong, 6)
    In access, per ora non ci sono andato, sono in fase di sviluppo codice e testaggio risposte.

    Cosa mi dici delle date?

    A presto, gene.
    gene

+ Rispondi al Thread

Discussioni simili

  1. Importazione dati
    Da biker nel forum Microsoft Office, Access, VBA
    Risposte: 1
    Ultimo Post: 22-08-2006, 18:01
  2. Perl e la manipolazione di dati
    Da jo4perl nel forum Altri linguaggi, metodi e strumenti
    Risposte: 1
    Ultimo Post: 30-11-2005, 12:50
  3. Importare dati in Access
    Da francogilles nel forum Access
    Risposte: 10
    Ultimo Post: 30-12-2004, 11:05

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi