Skip to main content

AccessTr.neT


Global Procedure hakkında

Global Procedure hakkında

Çözüldü #1
Arkadaşlar, global bir procedure var diyelim. Bu procedure 2 değer gönderip bir hesaplama yaptıracam. Örnek.

Public Sub Prcdr(degisken1 As String, degisken2 as integer)
..........
.........
.........
End Sub

Acaba yukarıdaki yapıda bir yapısal yanlışlıkmı var. Yada benim gözden kaçırdığım bir şey mi?

Procedure'yi çağırırken
Prcdr(".....", 3) gibi bir yapı kullanıyorum. Hata varmı, ne dersiniz?

------------------------------------------------------------------------------

Sanırım 2 parametre verebilmek için Function kullanmak gerekiyor. Procedure'lerde 1 parametre kullanılabiliyor.
Son Düzenleme: 25/05/2009, 18:39, Düzenleyen: mesudi.
Cevapla
Çözüldü #2
Sorun çözülmüştür. Teşekürler.Img-grin
Son Düzenleme: 25/05/2009, 20:01, Düzenleyen: mesudi.
Cevapla
Çözüldü #3
Function gibi Procedure'lerde de birden fazla parametre kullanılabiliyor.
Gözünüzden kaçan başka bir şey olmuştur.
Sorunu nasıl çözdüğünüzü de yazsanız daha iyi olurdu.
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla
Çözüldü #4
Yapınızda bir hata yok ancak kullanımda hata var. Prosedürü çağırma yönteminiz hatalı. Olması gereken şöyle bir şey:

Kod:
Private Sub Komut0_Click()
Topla 15, 10
End Sub

Private Sub Topla(x As Integer, y As Integer)
MsgBox x + y
End Sub

Ben Private Sub kullandım. Siz bunu Public olarak da yapabilirsiniz.

Kullanıma dikkat edin. Prosedürden sonra gelen iki değişken tanımlandırdık. Bu iki değişken prosedürle birlikte kullanılmalı.

Kolay gelsin...
NZ Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
DSum ve Sum Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
DLookup Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
Cevapla
Çözüldü #5
global veri1 as string

bunu herhangi bir modüle yazdnız ve ve formun birinde bu global neseneye şöyle

veri1="ali"

deiniz taki siz bir başka formda yada sorguda değiştirene kadar ali diye kalır ancak program kapandığında silinir public sub lar bütün formlardan çağrılır yalnız modülde olamk şartıyla private sub lar ssadece içinde olduğu modül yada formdan çağrılır function lar modülde ise bütün form yada sorgulardan ancak formda ise sadeece formdan çağrılır

global nerde kullanılır en basit şekilde diyelim
global a as integer
global b as integer
diye iki global nesne belirlediniz yine diyelim bir fonksiyon yazdınız
ve bu fonksiyon a ve b yi toplacak ama a c formunda b ise d formunda işte tamda burda işe yarar

Global a As Integer
Global b As Integer
Function topla(ilk As Integer, son As Integer) As Integer
topla = ilk + son
End Function

şimdi siz ilk formunuz açık bir hesap yapmak için bir başka formdaki seçilen kayda ait hesaplanmış alan var işte ordaki veriyi seçtiniz hesaplanmış alandan form kapandığında
a=hesaplanmışalan
dediğinizde global a nesnesine hesaplanmış veriyi yüklersiniz bir başka formdanda aynı şekilde b=hesaplanmışalan diyerek global b nesnesine veriyi yüklersiniz
zaten asıl formunuzda ekranda açık hesapla dediğinizde metinkutunuz=topla(a, b) dediğinizde global nesnesine diğer formlardan attığınız verilerin toplamı gelir
meşhur çin atasözü  "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Cevapla
Çözüldü #6
Arkadaşlar ilginize teşekürler. Nasıl çözdüğümü hemen söyliyim, daha doğrusu nerde hata yaptığımı.

Prcdr(".....", 3) hata burda.

Çünkü procedure çağrılarında parametreler parantez içine yazılmaz. Bunu unutmuşum. Aslında parametre sayısı 1 tane olursa parantez kullanımında bir sorun olmuyor. Ama 2 veya daha fazla oldumu parantez olmayacak. Ben bundan dolayı hata yaptım. Yani anlayacağınız Functionlarla Procedure'leri birbirine karıştırmışım. Kullandığım procedurelerin birçoğu tek parametre aldığı için ve ben hepsinde parantez kullanmış olduğum için alışkanlık yapmış. Tekrar hepinizin konuya ilişkin faydalı katkılarınızdan dolayı teşekür ederim.
Son Düzenleme: 26/05/2009, 19:20, Düzenleyen: mesudi.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da