genel

Katılım
1 Şubat 2006
Mesajlar
140
Excel Vers. ve Dili
2010
Sn. arkadaşlar, 3 tane genel bilgi amaçlı sorularım olacak. herkese teşekkürler ve kolay gelsin.

1- formlarda makroyu ne zaman ve niçin kullanmak gerekir.(nesneler listesindeki makrolar kısmını)
2-yaptığımız bir programda kayıtları aynı zamanda bilgisayarda bir klasöre yedek olsun diye (word veya excel olarak) nasıl kaydettirebiliriz.
3-açılır kutudan veri seçince ona ait veriler otomatik gelmesi için yapılan mesela
Private Sub Açılan_Kutu26_AfterUpdate()
x=y.column(2)
z=y.column(3)
...
böyle böyle uzun uzun her otomatik gelinmesi isteneni column1-2-3... şeklinde yazmak yerine bazı örneklerde gördüğüm aşağıda örnekte olduğu gibi toplu tamamlama gibi bişey var, aşağıdaki bu örneği açıklarmısınız. yani burda dikkat edilecek özellikle hangi nokta. FindFirst ve Bookmark den kasıt ne, nerdeki veriyi işaret ediyor bunlar. FindFirst yerine FindSecond yazsak olabilir mi?

örnek:
"Private Sub Açılan_Kutu26_AfterUpdate()
' Denetime uyan kaydı bul.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[No] = " & Str(Nz(Me![Açılan Kutu26], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub"

(bu forum sitesini oluşturanlara bütün samimiyetimle teşekkür ediyorum)
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

makrolar zaten koddur aynı işi yapar

yani hazır koddur araçlarda makroları dönüştür dersen yaptığın makroyu koda dönüştürür

ikinci sorun senin deiğin işlem ancak o şekilde olur başka bir yoluda var ama oda ondan fazla kod demek

bütün kutuları sayacan hepsini ayıracan ilgili kayıtları monlara dolduracan bir sürü iş

ama sen aynı işi bir kaç yerde birden kullanmak istiyorsan ona sub prosödürü yaz

yani

sub yerleştir ()
a.value=açılan.colunm(1)
end sub

ve


Private Sub aranan_Updated(Code As Integer)
Call yerleştir
End sub

diye yada

metin kutusunun güncelleştirildiğinde yazan yere

=yerleştir()

yaz güncelleştiğinde yerleştir kodunu yürütür


bu ise eşitleme kodudur senin dediğin ile uzaktan yakından alakası yok

"Private Sub Açılan_Kutu26_AfterUpdate()
' Denetime uyan kaydı bul.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[No] = " & Str(Nz(Me![Açılan Kutu26], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub"


word excell gibi sorular için ise bu ve bunun benzeri kodlar access kod deposunda var
 
Katılım
1 Şubat 2006
Mesajlar
140
Excel Vers. ve Dili
2010
Sn. Gülsüm1, öncelikle çok teşekkür ediyorum, son zamanlarda çok yoğun şekilde hemen hemen bütün sorulara cevap verişinize hayranım.
bu günkü bir soruda "davranışasayı aktarma" adlı bir program var
burada
makro1:
UPDATE Davranışlar SET Davranışlar.[2Dönem] = [Formlar]![DavranışGirişi]![Çerçeve60]

şeklinde bir makro yapmışsınız ve çerçeve60 ın güncelleşme sonrasına makro1 olarak atamışsınız.
acaba aynı işi 1-2-3 şeklinde 3 komut düğmesi olsaydı onlara kod olarak aynı olayı nasıl yapardık
yani
Private Sub komutn_click()
?
end sub


Ayrıca şu eşitleme kodu otomatik tamamlama olayından farklı demişsiniz, peki bu eşitleme kodunu biraz detaylandırımısınız.
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

zaten çerçeve bir komut düğmesidir

ondaki veriler sanal tutulur ama sen illada ben kendi düğmemi koyacam dersen

ozaman bir text kutusu ve

düğme1.click
textkutusu.value=1


diye devameder sorguyu o text kutusuna bağlarsın yada herdüğmeye ayrı ayrı ordaki sorguyu yazarsın ve ölçüt kısmına düğmeye göre 1 2 3 her neyse


o programda kullandığım makronun kod hali

DoCmd.RunSQL "UPDATE Davranışlar SET Davranışlar.[2Dönem] = [Formlar]![DavranışGirişi]![Çerçeve60] WHERE (((Davranışlar.D_Id)=[Formlar]![DavranışGirişi]![No])); ", -1

işte burda eşitleme var = olan kısım


eşitleme kodu ise şu alanla bu eşitse formu aç orda şu alanla bu alan eşit olsun yada şu alanla bu alan eşitse şuraya bunuyaz bunu çiz bunu döv şunu parçala şununla bunu çarp buraya yaz vs vs
 
Son düzenleme:
Üst