Esportare codice da file .accdb

di il
6 risposte

Esportare codice da file .accdb

Ciao a tutti,
premetto che non so praticamente nulla di VB... in teoria devo trasformare del codice scritto per Access 2010 in codice Java.
Vi volevo chiedere se avete qualche consiglio a riguardo... io speravo di poter estrarre dal programma dei file di codice VB per estrapolare la logica di presentazione e di business, peccato che non riesca a fare in modo di avere dei semplici file di testo, riesco solo ad aprire le maschere con Micosoft Visual Basic Applications Edition senza riuscire ad avere dei file che descrivino il programma

6 Risposte

  • Re: Esportare codice da file .accdb

    Non ho capito moltissimo...

    Premesso che non esiste nulla che faccia in AUTOMATICO questa conversione, va da se che per farlo devi conoscere la programmazione in VB ed il suo MODELLO ad OGGETTI.

    Detto questo se il File è in versione ACCDB, e lo apri con MsAccess versione completa puoi andare in modalità VBE(Visual Basic Editor) e vedere tutto il codice VBA che serve.

    Da li poi sta solo nella tua preparazione approciare alla conversione.
  • Re: Esportare codice da file .accdb

    Io non cerco un modo automatico per fare la conversione, vorrei avere dei file di testo da poter leggere (magari con un applicativo che svilupperò io in Java) per poter capire la struttura della maschera

    Il problema è il seguente: apro il file con Ms Access, seleziono la maschera in modalità "visualizzazione struttura" e poi dal menù clicco su visualizza codice. Mi si apre l'editor VB e questa è la situazione:



    Il "problema è la parte evidenziata in rosso: ogni elemento grafico della maschera (label, bottoni...) è contenuto in questo menu, se io avessi le stesse informazioni su un file di testo potrei fare il parsing del codice, così non posso automatizzare il processo di trasformazione.

    Spero di essere stato chiaro
  • Re: Esportare codice da file .accdb

    Si chiarissimo.
    La cosa è estremamente semplice...
    Prova a mettere questo codice in un Modulo e richiama la Funzione [PrintProperties()]
    dalla Finestra immediata che si attiva con CTRL+G, quindi scrivi:
    ?PrintProperties()
    quando dai invio, parte il ciclo tra le maschere, prenderà tempo, ma dovrebbe andare...
    
    Function PrintProperties()
    
    
        On Error Resume Next
    
        Dim obj         As AccessObject
        Dim dbs         As Object
        Dim frm         As Access.Form
        Dim ctl         As Access.Control
        Dim intCount    As Integer
        Dim intFile     As Integer
        
        Set dbs = Application.CurrentProject
        intFile = FreeFile
        
        For Each obj In dbs.AllForms
        
            If obj.IsLoaded = True Then DoCmd.Close acForm, obj.Name, acSaveNo
            
            DoCmd.OpenForm obj.Name, acDesign, , , , acHidden
                    
            Set frm = Access.Forms(obj.Name)
                    
            For Each ctl In frm.Controls
                Debug.Print ctl.Name
                For intCount = 0 To ctl.Properties.Count
                    Debug.Print "Maschera(" & obj.Name & ")--> Controllo(" & ctl.Name & ") --> Proprietà(" & ctl.Properties(intCount).Name; ") = " & ctl.Properties(intCount).Value
                    ' Quì invece del DEBUG vai a scrivere in un FILE con 1 riga di codice...
                    
                    Open "C:\FormsControlsProperties.txt" For Append Shared As #intFile
                        Print #intFile, "Maschera(" & obj.Name & ")--> Controllo(" & ctl.Name & ") --> Proprietà(" & ctl.Properties(intCount).Name; ") = " & ctl.Properties(intCount).Value
                    Close #intFile
                    DoEvents
                Next intCount
                ' Salta una RIGA ogni Maschera
                Open "C:\FormsControlsProperties.txt" For Append Shared As #intFile
                    Print #intFile, "-----"
                Close #intFile
            Next ctl
            
            DoCmd.Close acForm, obj.Name, acSaveNo
        Next obj
    
        Set dbs = Nothing
        Set frm = Nothing
    
    End Function
    
    Provato prima di postarlo e Funziona.
  • Re: Esportare codice da file .accdb

    Grazie mille della risposta

    prima dovrò prendere un po' la mano con Access e VB, poi provo a far andare il codice
  • Re: Esportare codice da file .accdb

    Grazie mille, è proprio quello che cercavo!!!
    Sarò lieto di aggiungerti tra i ringraziamenti nella mia tesi di laurea
  • Re: Esportare codice da file .accdb

    Allora in bocca al lupo...!
    Ciao
Devi accedere o registrarti per scrivere nel forum
6 risposte