PDA

View Full Version : Ms Access: da Macro > a VB ... e poi???


Georgyboy
07-05-2005, 08:55
Ciao,
ho un problema con Access, o meglio:
dopo aver creato una macro, questa si può convertire in VB... (e fin qui nessun problema)*... ma poi? Come faccio ad associare ad un pulsante il nuovo codice creato dalla macro (che se elimino, ovviamente - per me -, poi non funzia più?).
Chi mi aiuta? :(
Premetto che di VB conosco l'esistenza... (un buon inizio :D ).

*:i manuali che ho comprato o che ho trovato spiegano sempre come convertirle, ma mai che facciano uno sforzo per spiegare cosa deve accadere dopo. :rolleyes:

Mixmar
07-05-2005, 17:14
Scusami, forse non ho capito la domanda ma... non potresti "svuotare" il codice appena creato del contenuto della macro, lasciando solo la dichiarazione di inizio routine (Private Sub Qualcosa) e quella di fine (End Sub) ? In mezzo puoi scrivere il codice che vuoi!

Georgyboy
07-05-2005, 19:26
No, premesso che di VB non so nulla, aggiro con le macro.
Mentre però per una macro es:

Nome Macro: Pulsanti_Primo
Azione: eseguicomando*
Descrizione: Vai al primo record
*: RecordVaiAPrimo

se la converto diventa:

'------------------------------------------------------------
' Pulsanti_Primo
'
'------------------------------------------------------------
Function Pulsanti_Primo()
On Error GoTo Pulsanti_Primo_Err

' Vai al primo record
DoCmd.RunCommand acCmdRecordsGoToFirst


Pulsanti_Primo_Exit:
Exit Function

Pulsanti_Primo_Err:
MsgBox Error$
Resume Pulsanti_Primo_Exit

End Function

Aquesto punto, mentre con la macro vado nella maschera e nel pulsante creato, dalle proprietà scelgo "su clic" e "nomemacro"
(io mi arrangio così, ti assicuro che qualcosa esce fuori! :D )

Come posso fare per associare il codice di cui sopra al pulsante eliminando quindi la macro??
Sapresti aiutarmi tu in questo?
Sono convinto che la soluzione possa essere la più banale del mondo, ma non la so, come non so programmare. Poi pian pianino imparo :oink:
HELP ME.

Georgyboy
08-05-2005, 15:34
Vi ho messo in crisi he?!! :D

up :)

Georgyboy
09-05-2005, 18:24
up :)

cionci
09-05-2005, 18:58
Crei un pulsante non ci associ alcun comando e sull'evento click richiami quella procedura...

Georgyboy
09-05-2005, 21:04
Crei un pulsante non ci associ alcun comando e sull'evento click richiami quella procedura...

Ciao cionci, proprio questo! Come si fa?

cionci
09-05-2005, 23:11
Prendi un "Pulsante di comando" dalla palette degli strumenti e clicki sul form...poi premi annulla... Proprietà sul tasto -> Evento -> Su click -> premi sui puntini -> generatore di codice e all'interno della Sub che ti viene creata chiami la tua funzioni (metti direttamente le istruzioni comprese fra le parole chiave Function e End Functioni)...

Georgyboy
10-05-2005, 18:40
Non funzia... :eh:

andiamo per ordine:
inseriamo il pulsante; fatto?
premiamo annulla per non usare il wizard; ffatto?

ora entriamo in VB ed abbiamo:

________________________________________
Private Sub Comando1_Click()

End Sub
________________________________________


Well, ora andiamo a prendere il codice convertito,

________________________________________
Function Btn_Tbl_Open()
On Error GoTo Btn_Tbl_Open_Err

DoCmd.OpenTable "Tabella1", acViewNormal, acReadOnly


Btn_Tbl_Open_Exit:
Exit Function

Btn_Tbl_Open_Err:
MsgBox Error$
Resume Btn_Tbl_Open_Exit

End Function
________________________________________


Quindi ora potrei avere:
________________________________________
Private Sub Comando1_Click()
Function Btn_Tbl_Open()
On Error GoTo Btn_Tbl_Open_Err

DoCmd.OpenTable "Tabella1", acViewNormal, acReadOnly


Btn_Tbl_Open_Exit:
Exit Function

Btn_Tbl_Open_Err:
MsgBox Error$
Resume Btn_Tbl_Open_Exit

End Function
End Function
________________________________________
oppure

tolgo un: End Function ed inserisco un end sub (si inc@@za comunque!)

Non funziona.

DOMANDA FINALE: Ma i moduli a che servono se devo ridigitare per ogni pulsante il codice? Non dovrebbe servire per il riutilizzo (es. vai al primo record, per 10 maschere etc.etc.)??? :confused:

Cionci confido in te... (pago da bere!*)
* a meno che tu non sia una spugna a secco da mesi!! :D

cionci
10-05-2005, 18:49
Private Sub Comando1_Click()

On Error GoTo Btn_Tbl_Open_Err

DoCmd.OpenTable "Tabella1", acViewNormal, acReadOnly


Btn_Tbl_Open_Exit:
Exit Sub

Btn_Tbl_Open_Err:
MsgBox Error$
Resume Btn_Tbl_Open_Exit

End Sub

Così dovrebbe andare

Georgyboy
10-05-2005, 19:50
FUNZIONA!!

grazie mille cionci,
questo è un piccolo passo per l'uomo, ma un grande passo per georgyboy!
Quindi:
Btn_Tbl_Open_Exit:
Exit Function
diventa:
Btn_Tbl_Open_Exit:
Exit sub
ed alla fine End sub...
(anche per me Sub ci voleva... me lo diceva l'errore! :D )

1) Se faccio queste modifiche a tutti i pulsanti, ci guadagno in velocità?
Mettiamo caso che dovremmo utilizzarlo in più persone il DB
1bis) quali sono i limiti di accesso di Access?
2) Ora che me ne faccio del codice convertito?... non lo posso riutilizzare,

3) Seguito post, devo cambiare il nick in "Irina Scassalc@z@i@"???