do while loop kullanılışı
Tarih
22/03/2009 16:15
Konu Sahibi
accessman
Yorumlar
5
Okunma
1852
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



accessman

Kullanici Avatari
Onursal
2.367
31/10/2008
425
Denizli
Ofis 2003
20/09/2016,00:20
Çözüldü 
iyi günler arkadaşlar
do while loop döngüsü ile ilgili ders anlatımı veya örnek varmı acaba
mesala şöylemi olmalı
-----------------------
onay1.value=false
Do while onay1.value=true
metin1= rnd()
onay1.value=true
loop
-----------------------
teşekkürler
Cevapla


okileturc
Aktif Üye
Kullanici Avatari
Aktif Üye
O.... V....
966
18/03/2009
459
İzmir
Ofis 2003
23/05/2016,13:38
Çözüldü 
Selamlar

Örnekte görüldüğü gibi
Koşul gerçekleştiği sürece bir eylemin
tekrar etmesi

3 bölümden oluşur
___________________________________
1.
Do While öncesi bildirimler
Do While + Koşulunuz ( bu koşul sağlandığı sürece eylem tekrar edilir )

2.
Tekrar edilecek eylemlerin bütünü

3.
Loop
Koşul sağlanmadığı duruma gelince yapılacak bildirimler

_____________________________________
Örnek :

Dim SAYAC AS Integer
SAYAC = 20

Do While SAYAC > 0
MsgBox " Sayaç henüz sıfırlanmadı"
SAYAC=SAYAC-1

Loop
MsgBox " Sayaç sıfırlandı"

Selamlar
okileturc, 18-03-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla


accessman

Kullanici Avatari
Onursal
2.367
31/10/2008
425
Denizli
Ofis 2003
20/09/2016,00:20
Çözüldü 
teşekkürler
Cevapla


Nurullah_Serdar
FaTSaLı
Kullanici Avatari
Aktif Üye
568
22/11/2008
189
Giresun
Ofis 2007
01/07/2013,13:21
Çözüldü 
yaptığım veritabanında yıl sonunda izin birleştirmesi için kullandım bu kodları.

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
'Kayıt Aktarılacak Personel Sicillerini Alacağız

Dim dbsizinaktar As DAO.Database
Dim rstizinaktar As DAO.Recordset
Dim dbpathizinaktar As String

dbpathizinaktar = DLookup("yol", "yol")
Set dbsizinaktar = DBEngine.OpenDatabase(dbpathizinaktar)
Set rstizinaktar = dbsizinaktar.OpenRecordset("SELECT * FROM anatablo WHERE ((anatablo.GörevDurumu)='" & "GÖREVE BAŞLADI')")

With rstizinaktar
.MoveLast 
.MoveFirst

Do While Not .EOF
'siciller sıralanıyor

Dim rstizinaktar1 As DAO.Recordset
Dim izin As Integer
izin = 0

' Kullandığı İzinler Hesaplanıyor
Set rstizinaktar1 = dbsizinaktar.OpenRecordset("SELECT * FROM Izin WHERE (Izin.Sicili)=" & !Sicili)

If rstizinaktar1.RecordCount <> 0 Then
    With rstizinaktar1
    .MoveLast
    .MoveFirst
    Do While Not .EOF
    izin = izin + !KullandigiIzin
    
    
    .MoveNext
    Loop
    .Close
    End With
End If

'Hakettiği İzinler Hesaplanıyor

Dim rstizinaktar2 As DAO.Recordset

Dim izinhak As Integer
izinhak = 0

Set rstizinaktar2 = dbsizinaktar.OpenRecordset("SELECT * FROM Izin WHERE (Izin.Sicili)=" & !Sicili)

If rstizinaktar2.RecordCount <> 0 Then
    With rstizinaktar2
    .MoveLast
    .MoveFirst
    Do While Not .EOF
    izinhak = izinhak + !HakettigiIzin
      
    
    .MoveNext
    Loop
    .Close
    End With
End If

'Yıllık İzin Girişi Yapılıyor

Dim rstizinaktar3 As DAO.Recordset
Set rstizinaktar3 = dbsizinaktar.OpenRecordset("SELECT * FROM Izin ")

    rstizinaktar3.AddNew
    rstizinaktar3!Sicili = !Sicili
    rstizinaktar3!Adi = !Adi
    rstizinaktar3!Soyadi = !Soyadi
    rstizinaktar3!GörevYeri = !GörevYeri
    rstizinaktar3!SubeBüro = !SubeBüro
    rstizinaktar3!IzinYili = Year(Date)
    rstizinaktar3!IzinTürü = "YILLIK İZİN GİRİŞİ"
    rstizinaktar3!BaslamaTarihi = Date
    'Toplam İzin hakkı - kullandığı izin hakkı yıllık izin hakkından büyükse
    If (izinhak - izin) > !YillikIzinGunu Then
    'yıllık izin hakkı olarak kalan izninden yıllık izin hakkını çıkarıyoruz
    rstizinaktar3!HakettigiIzin = (!YillikIzinGunu * 2) - (izinhak - izin)
    rstizinaktar3!Açiklama = "Yıllık İzin Hakkından Geçen Yılın Fazlalık İzni Düşülmüştür"
   
    Else
    'değilse normal izin hakkını giriyoruz
    rstizinaktar3!HakettigiIzin = !YillikIzinGunu
    End If
     rstizinaktar3!Onay = -1
    rstizinaktar3.Update
    rstizinaktar3.Close
    
.MoveNext
Next I
Loop

.Close
End With
dbsizinaktar.Close

İyiki Varsın Access Img-grin
Cevapla


Krizantem
Cezalı
Kullanici Avatari
Cezalı Üye
27
2
22/03/2009
Adana
Ofis 2003
27/04/2009,09:01
Çözüldü 
Ben daha sitede yeniyim fakat bir şey yazmak istiyorum.
Mod olan bir arkadaşı uyarmak gibi algılamazsanız sevinirim. Sonuçta burası bir paylaşım platformu. Herkes paylaşacak ki gelişeceğiz.
Alıntı:With rstizinaktar
.MoveLast
.MoveFirst

Do While Not .EOF
'siciller sıralanıyor

Dim rstizinaktar1 As DAO.Recordset
Dim izin As Integer
izin = 0

' Kullandığı İzinler Hesaplanıyor
Set rstizinaktar1 = dbsizinaktar.OpenRecordset("SELECT * FROM Izin WHERE (Izin.Sicili)=" & !Sicili)

If rstizinaktar1.Recor DCount <> 0 Then
With rstizinaktar1
.MoveLast
.MoveFirst
Do While Not .EOF
izin = izin + !KullandigiIzin


.MoveNext
Loop
.Close
End With

Hata olarak gördüklerim
1. While döngüsü içinde bir dim yapılıyor. Her döngüde tekrar tekrar tanımlanıyor. Tanımlananı da sonuna kadar giderek tarıyor. Sanki orada bir Dsum kurtarıcakmış gibi.
2. Hatta veri tabanını görsem büyük ihtimalle tek bir Sql ile çözülebilir sanırım. Ben olmasam da değerli arkadaşlar yapabilirler.

Nacizane fikrime göre bu kod inanılmaz yavaş çalışlan bir kod gibi geldi bana.
Cevapla


Nurullah_Serdar
FaTSaLı
Kullanici Avatari
Aktif Üye
568
22/11/2008
189
Giresun
Ofis 2007
01/07/2013,13:21
Çözüldü 
dsum etki alanı topluluğu . bir tablo veya sorgudan kullanabilirsin. benim veritabanım kodlarımın bulunduğu veritabanında değil. dao ile bağlantı kullanıyorum. dim için dediğin belki doğru olabilir ama kodlardaki tanımlamarı kullanacağım yere yakın yazıyorum. bir sorun çıktığı zaman gözümün önünde olsun diye. farklı birsürü fikir çıkabilir. ama herkesin bir çalışma prensibi var. yavaş demişsin hiçte öyle bir problemi yok. altı üstü bir tanımlama.
İyiki Varsın Access Img-grin
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
Çözüldü do loop accessman 4 1.065 19/09/2010, 22:23 accessman
Çözüldü if yapısnının kullanılışı kendigelen 2 1.113 21/01/2009, 17:12 kendigelen


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya