AccessTr.neT
Tablodaki formül - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Tablodaki formül (/konu-tablodaki-formul.html)

Sayfalar: 1 2 3


Cvp: Tablodaki formül - fatih karagöl - 30/12/2011

1 - (Olcu1*Olcu2*Olcu3)*0,0062/1000
2 - (Olcu1*Olcu2*Olcu3)*0,0029/1000
3- (Olcu1*Olcu2*Olcu3)*96/1000/10000

üstad formüller bunlar. ölçü sayısı daima 3. ancak sonrasındaki veriler oldukça değişken
bir çözüm buldum ama kötü bir çözüm oldu pek içime sinmedi


Cvp: Tablodaki formül - Coskun0559 - 30/12/2011

tam olarak ne yapmak istediğini anlamış olmamakla birlikte aklıma şöyle bir şey geliyor,Sen bu formülleri tabloda tutacaksın orayı anladım.Sonra bu formüllere göre form üzerinde işlem yaptıracaksın.senin 7.mesajda yazdığın formüller hep aynı sadece değişken olan opndalık kısım,sanırım sen o alana katsayı demiştin.
biz katsayı değerleri tabloda tutarsak daha mantıklı olur.

Biraz daha basite indirgeyelim.
3 adet ölçün var elinde ( 100,200,300) sen bunları çarpacaksın.Sonra çıkan sonucu katsayı değeriyle çarpıp 1000 ' e böleceksin.
Biz katsayı değeri ile bölünecek değeri tabloda tutsak yeterli olacaktır.



Cvp: Tablodaki formül - fatih karagöl - 30/12/2011

doğrudur üstad. konu tam olarak aynen budur. dün akşam ölçü sayıları konusunda kafam karışıktı ama netledim onu. yalnız matematik operatorleri vb ya tanıtabilmek ve tablodaki formülün uzunluğuna göre işlem yaptırabilmek konusunu iyi bir çözümle aşamadım. 1 tanesinde (ölçüler hariç ) 2 işlem varken ötekinde 5 işlem olabiliyor sonuca ulaşmak için. ben tabloya işlem sayısını da ekledim sonra işlem sayısından döngü yarattım. sonrada
Sonuc = Olcu1*Olcu2*Olcu3
if operator = "*" then
Sonuc = Sonuc * katsayı
Elseif operator = "/" then
= Sonuc = Sonuc / katsayı
...
End if
şeklinde çözdüm ama dediğim gibi içime sinmedi.


Cvp: Tablodaki formül - Coskun0559 - 30/12/2011

biz zaten formları tablolar üzerinde daha kolay ve hatasız işlem yapmak için kullanmıyormuyuz.?
formun üzerinde istediğin kadar alanın olsun yapılan hesaplamayı tabloda bir veya birkaç alana kaydedeceksin.
Bunu hesap makinasına benzetelim.
senin ölçü sayın;
ölçü1,ölçü2,ölçü3,ölçü_nn

operatörün;
*,/,+,-
katsayı değerinde;
sen belirleyecen
geriye sadece hesaplatmak kalıyor.
Örneğinin son halini ekleyebilirmisin



Cvp: Tablodaki formül - fatih karagöl - 30/12/2011

ben iki nolu formüle göre hesaplattım. Formüllerin fonksiyona değilde tabloya koyulmasını, profosyonel bir programın veritabanında ( kullanıcı ihtiyacına göre oluşturabilsin diye ) görmüştüm. Tabi onlar nasıl bir teknoloji ile sonuç döndürüyorlar onu bilemiyorum.
Üretebildiğim sonuç ektedir.
Ek Dosyalar
 TablodanFormül.rar(16.18 KB)



Cvp: Tablodaki formül - Coskun0559 - 30/12/2011

ben tablondaki verileri kullanmadım tamamen kodla birşeyler yapmaya çalıştım.
senin formülde en sonda /1000 /10000 ler var onları hiç kjarıştırmadım.bi buraya kadar yaptıklarımızı gözden geçirelim.Sana Koduda yazıyorum örneğide gönderiyorum.En son bu haliyle bi konuşalım tekrar düzeltebiliriz.
'anlaman için basite indirgeyerek yazıyorum
Dim olcu1
Dim olcu2
Dim olcu3
Dim katsayi
Dim islem
Dim teorikg
Dim teorikgtoplam
Dim katsayilicarpim
Dim katsayilicarpim2
If IsNull(Me.olcu1) Then a = MsgBox("1.Ölçüyü Girmeden Devam Edemezsiniz"): Me.olcu1.SetFocus: Exit Sub
If IsNull(Me.olcu2) Then a = MsgBox("2.Ölçüyü Girmeden Devam Edemezsiniz"): Me.olcu2.SetFocus: Exit Sub
If IsNull(Me.olcu3) Then a = MsgBox("3.Ölçüyü Girmeden Devam Edemezsiniz"): Me.olcu3.SetFocus: Exit Sub
If IsNull(Me.katsayi) Then a = MsgBox("Katsayi Girmeden Devam Edemezsiniz"): Me.katsayi.SetFocus: Exit Sub
If IsNull(Me.islem) Then a = MsgBox("İşlemi Girmeden Devam Edemezsiniz"): Me.islem.SetFocus: Me.islem.Dropdown: Exit Sub
olcu1 = Me.olcu1.Value
olcu2 = Me.olcu2.Value
olcu3 = Me.olcu3.Value
katsayi = Me.katsayi.Value
islem = Me.islem.Value
teorikg = olcu1 * olcu2 * olcu3
If islem = "*" Then katsayilicarpim2 = teorikg * katsayi
If islem = "/" Then katsayilicarpim2 = teorikg / katsayi
If islem = "+" Then katsayilicarpim2 = teorikg + katsayi
If islem = "-" Then katsayilicarpim2 = teorikg - katsayi
Me.sonuc.Value = katsayilicarpim2

Ek Dosyalar
 TablodanFormül_coskun.rar(20.99 KB)