www.Cursuri-Excel.ro     www.Cursuri-Access.ro     www.Cursuri-Powerpoint.ro     www.Cursuri-Outlook.ro     www.Cursuri-Word.ro     www.CursuriProject.ro    

Convert VBA to Macro

Ce este nou in Microsoft Access 2010?
Informatii despre cum se utilizeaza Microsoft Access 2010.
Baze de date, Interogari, Formulare, Rapoarte, etc

Convert VBA to Macro

Mesajde SharQue99 » Lun Mai 02, 2016 5:30 pm

Salutare din nou. Vad in in ultima vreme este cam liniste pe forum si mi-am zis ca e momentul ca o stric eu, in a doua zis de Pasti.
Concret, vreau ca baza mea de date sa o public online si cum baza de date web nu suporta vba, trebuie sa convertesc toate vba-urile in macro.

Un singur cod imi da batai de cap si anume :

Cod: Selectaţi tot
Private Sub Denumire_DblClick(Cancel As Integer)
On Error GoTo Err_ListCustomers_DblClick
   Forms!comenzi!id_client = Me.ID_client
   Forms!comenzi!denumire_client = Me.denumire_client

   DoCmd.Close acForm, "cautare_client", acSaveYes
   
   Exit_ListCustomers_DblClick:
    Exit Sub

Err_ListCustomers_DblClick:
    MsgBox Err.Description
    Resume Exit_ListCustomers_DblClick
End Sub


Acest cod il folosesc in fereastra Dialog a form-ului "cautare_client" cand la dublu click inchide fereastra si copiaza id-ul si denumirea clientului din form-ul inchis in form-ul comenzi.

Aveti idee cum ar trebui sa arate acest cod in format macro si nu vba ?

Va multumesc frumos pentru ajutor.
SharQue99
 
Mesaje: 71
Membru din: Vin Noi 02, 2012 3:06 pm

Re: Convert VBA to Macro

Mesajde Tzica » Mar Mai 03, 2016 7:48 am

Doar ca idee, eu neatingand nivelul de publicare a unei BD..zic eu ca , comanda SetValue e cheia pentru astfel de operatiuni.
Set Value
Nu cred (sa nu pot sa-mi dau seama) daca e cazul sa se creeze un grup Macro (asta pentru usurinta in urmarire/depanare)... dar in orice caz, formularul clienti musai sa ramana deschis, pentru a putea prelua numele clientului prin comanda Set Value.Echivalentul macro pentru SetFocus fiind..GoToControl.Deci comanda macro ar trebui sa fie de genul:
1. If (conditii pentru preluarea numelul clientulu, fie formular deschis fie, campul IDclientt sa nu fie nul, (caz in care poate e necesar sa deschidem formularul de adaugare client...cu tot ce decurge de aici..adica oareace MsgBox cu optiuni de renuntare comanda, optiune de adaugare client (poa sa fie o simpla eroare de butonare..in fine,...)).Daca nu e nul (clientul exista in baza de date) atunci:
2.Go To Control Forms!ListCostumers!Client. (se "concentreaza" pe clientul selectat).
3.Open Form!Comenzi (pentru adaugare comanda noua);
4. SetValue.Forms!frmComenzi!idClient = Forms!ListCostumers!Client.

(cam asa as vedea eu, comanda macro...dar nu am cum sa testez, necunoscand implicatiile ..publicarii). :oops:

LE: Poate e de ajutor:
Working With Macros
Tzica
 
Mesaje: 615
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesajde SharQue99 » Mar Mai 03, 2016 2:22 pm

Eu banuiesc ca trebuie sa fie bazat pe "tempvar" si anume sa salveze un variabila temporara cu valoarea campului pe care vreau sa o copieze, sa inchida form-ul cautare_client si apoi sa puna valoarea in campul in care doresc eu.
Am tot incercat dar nu ii dau de cap.
Daca are cineva o idee, va rog sa mi-o spuneti.
Va multumesc frumos.

Ca idee, ca sa deschid din lista_clienti un form cu un anumit client am urmatorul cod, poate se inspira cineva si isi face cineva o idee cum ar trebui sa arate codul care imi trebuie mie ( vezi atasament).
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
SharQue99
 
Mesaje: 71
Membru din: Vin Noi 02, 2012 3:06 pm

Re: Convert VBA to Macro

Mesajde Tzica » Mar Mai 03, 2016 4:17 pm

Ehh..
1.Cred ca nu e ok, ca variabila sa aiba acelasi nume precum campul (IdClient).Incearca sa redenumesti respectiva variabila;
2.Incearca si ce am sugerat mai sus, adica schimba putintel ordinea operatiilor:
a) Cautare client / Identificare (OK);
b) Deschidere formular Comenzi (formularul de Cautare client, ramanand deschis);
c) Copiere Nume/IdClient;
d) Inchidere formular cautare/identificare client.
(Adica, presupun ca TempsVars, se "incarca" doar daca are sursa deschisa).
LE: M-am inselat.Se pare ca poate fi stocata, chiar dac aformul din car ee preluata, e inchis.
TempVar1
Tzica
 
Mesaje: 615
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesajde SharQue99 » Mar Mai 03, 2016 5:47 pm

Eu am inteles ca trebuie asa :
- De identificat nu cred ca trebuie pentru ca el stie de cand dau dbclick ce rand trebuie identificat
- Form-ul "comenzi" este deja deschis. Din el deschid un alt form "cautare_client" deci ramane si el deschis.

Acum, cand dau Dblclick pe un anumit rand din lista de clienti sa ruleze urmatorul macro:
1) Copiez valoarea campului "id_client" ca si variabila temporara.
2) Inchid form-ul "cautare_client"
3) Ei aici ar trebui sa scriu comanda care sa seteze valoarea "id_client" din form-ul comenzi, aceeasi cu variabila temporara salvata mai sus. Am incercat cu SetProperty/value - Nu functioneaza, cu SetLocalVar - Nu functioneaza.
4) Inchid toate variabilele temporare.

Oare s-o putea face ce vreau eu ? Am descarcat toate template-urile web din acces si nu am vazut la niciuna sa se poata.
SharQue99
 
Mesaje: 71
Membru din: Vin Noi 02, 2012 3:06 pm

Re: Convert VBA to Macro

Mesajde Tzica » Mar Mai 03, 2016 6:17 pm

er..eh..la "SetProperty.Value" e de inteles de ce nu functioneaza.:
SetPropertyValue

(acu' am citit si io ca "but in access web apps, macros are the only way. No VBA is possible")
Tzica
 
Mesaje: 615
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesajde Tzica » Mar Mai 03, 2016 8:27 pm

Iaca, am gasit o actiune/comanda macro, dar..e pentru MsA2013 (webapp), mai pe la sfarsitul articolului:
WebAppMsA2013

Se pare ca e nevoie si de implicarea eventului AfterUpdate.
(Am revenit pentru ca ai dreptate....se face cu SetProperty...cel putin asa e descris in articolul respectiv.In fine..ma retrag...se pare ca Macro-urile pentru webb app, au oarece subtilitati).
:oops:
Tzica
 
Mesaje: 615
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesajde SharQue99 » Joi Mai 05, 2016 10:38 am

Din ce vad eu, Macro e diferit de VBA-ul cu care eram cat de cat invatat.
Daca cu vba pot edita un alt form, cu macro nu pot edita decat informatiile din form-ul curent.
Acum, eu m-am gandit asa :
1) Setez printr-un Macro1 o Variabila Temporara cu valoarea pe care vreau sa o copiez din campul "id_client" al form-ului "cautare_client".
2) Inchid Form-ul "cautare_client".
3) Setez printr-un alt Macro2 ca noul camp "id_client" din form-ul "comenzi" sa ia valoarea Variabilei Temporare.
4) Inchid Variabila Temporara.

Acum, cand naiba sa rulez Macro2 pentru ca Web Database nu suporta decat "on current" sau " on load" ca si event-uri ale form-ului.
Am pus "on current" dar nu functioneaza decat atunci cand apas F5. Daca pun un "Refresh" sau "Requery" nu functioneaza.
SharQue99
 
Mesaje: 71
Membru din: Vin Noi 02, 2012 3:06 pm

Re: Convert VBA to Macro

Mesajde Tzica » Joi Mai 05, 2016 10:40 pm

2010app

Dacă, am înțeles eu bine link-ul de mai sus, mai e nevoie de o variabila, inclusa intr-o alta comanda macro, care sa verifice formularul clienți,. (Procedura descrisă la adăugarea unui nou utilizator).
Tzica
 
Mesaje: 615
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesajde Tzica » Joi Mai 05, 2016 11:19 pm

Scuze ..corectez..."care sa verifice formularul clienți", sa verifice câmpul client din formularul comenzi (true sau false).
Tzica
 
Mesaje: 615
Membru din: Sâm Aug 11, 2012 10:52 pm


Înapoi la Intrebari despre Access 2010

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 2 vizitatori