Skip to main content

AccessTr.neT


Kod Sabit Sayı

Kod Sabit Sayı

#25
Merhaba,
Muhtemelen bahsettiğiniz sabitleme olayını yanlış yerden düzenlemesini yaptınız.


Örneğinizdeki forma balyalama sayısı için alan ekledim.

Ayrıca her iki formda da düzenleme yapıldı.
.rar recete_balya_sld.rar (Dosya Boyutu: 833,87 KB | İndirme Sayısı: 7)
Cevapla
#26
Sn.ozanakkaya

Çok Teşekkürler Emeğinize Sağlık Buda Süper Olmuş
Cevapla
#27
Sn.ozanakkaya

Kusura Bakmayın Bir Ricam Daha olacak Eğer mümkünse

-Her Balyada
-7 Evrak Sabit Her Balyada Reçete Aralığımız 148 - 153 aralığı yapmıştık
-Her Balyadaki Kutu Adeti de Toplamda 1 - 9 Kutu aralığında Olabilirmi Maximum
-Bunu Yapmak Mümkünmü

Emeğiniz ve Uğraşlarınız için Çok Teşekkür Ederim
Son Düzenleme: 02/02/2018, 21:37, Düzenleyen: golf2000.
Cevapla
#28
Butondaki


Set SrgYp = CurrentDb.CreateQueryDef("srg_balyalanacakkayitlar", "SELECT TOP " & Me.mtn_balyasayisi & " Evrak_No, [Reçete Sayısı], tarandı, [Balya No], Grubu FROM Eczacılık WHERE (((tarandı) Is Null) And ((Grubu) = '" & Me.acl_grubu & "')) ORDER BY Rnd(Int(Now()*[Evrak_No])-Now()*[Evrak_No])")


kodunu aşağıdaki ile değiştir. Ancak bu şekilde uygun kayıt bulabileceğini sanmıyorum.


Set SrgYp = CurrentDb.CreateQueryDef("srg_balyalanacakkayitlar", "SELECT TOP " & Me.mtn_balyasayisi & " Evrak_No, [Reçete Sayısı], tarandı, [Kutu Adedi], [Balya No], Grubu FROM Eczacılık WHERE    (((tarandı) Is Null) And ((Grubu) = '" & Me.acl_grubu & "') AND (([Kutu Adedi]) Between 1 And 9)) ORDER BY Rnd(Int(Now()*[Evrak_No])-Now()*[Evrak_No])")
Cevapla
#29
Sn.ozanakkaya

emeğiniz için teşekkür ederim

frm_balya Formundaki butona göndermiş olduğunuz kodu kopyalayıp değiştirdim.
Ama 9 un üstünde balyaladı kutuları

-Bir Balyada
-7 Evrak Eşit
-148 - 153 aralığında reçete
-En fazlada 9 kutu olsun istiyoruz

Emeğiniz için tekrar teşekkürler
Cevapla
#30
Butonun tıklandığında olayındaki kodlar

Private Sub btn_balyala_Click()

If Me.btn_balyala.Caption = "Balyala" Then

    GSorguKontrol = Nz(DCount("*", "MSysObjects", "[Name] = 'srg_balyalanacakkayitlar'"), 0)
    If GSorguKontrol <> 0 Then
    
        DoCmd.DeleteObject acQuery, "srg_balyalanacakkayitlar"
    
    End If
    
    Set SrgYp = CurrentDb.CreateQueryDef("srg_balyalanacakkayitlar", "SELECT TOP " & Me.mtn_balyasayisi & " Evrak_No, [Reçete Sayısı], tarandı, [Kutu Adedi], [Balya No], Grubu FROM Eczacılık WHERE (((tarandı) Is Null) And ((Grubu) = '" & Me.acl_grubu & "')) ORDER BY Rnd(Int(Now()*[Evrak_No])-Now()*[Evrak_No])")
    
    GBalyaSon = Mid(mtn_balyasayisi, Len(mtn_balyasayisi), Len(mtn_balyasayisi))
    
    
    If GBalyaSon = "2" Or GBalyaSon = "7" Then
    GGek = "şerli"
    ElseIf GBalyaSon = "6" Then
    GGek = "şarlı"
    ElseIf GBalyaSon = "9" Or GBalyaSon = "0" Then
    GGek = "arlı"
    Else
    GGek = "erli"
    End If
    
    
    Dim db As Database
    Dim rst As Recordset
    
    Set db = CurrentDb()
    Set rst = db.OpenRecordset("srg_balyalanacakkayitlar")
    
    rst.MoveLast
            
    Me.mtn_kontrol = rst.RecordCount
    
    
    
    If MsgBox(Me.acl_grubu & " Grubuna Ait Reçetelerin " & Me.mtn_balyasayisi & "'" & GGek & " balyalanmasını istiyor musunuz", vbYesNo) = vbYes Then
    
        If Nz(DMax("[Balya No]", "Yapılan_Balyalar"), 0) = 0 Then
    
        BalyaNo = InputBox("A Gurubu başlangıçtaki balya numarasını giriniz...")
        Else
        BalyaNo = DMax("[Balya No]", "Yapılan_Balyalar") + 1
        End If
        
        Me.mtn_balyano = "Balya No: " & BalyaNo
        Me.TimerInterval = 100
    End If
    
Me.btn_balyala.Caption = "Durdur"

ElseIf Me.btn_balyala.Caption = "Durdur" Then
    Me.TimerInterval = 0
    Me.btn_balyala.Caption = "Balyala"
    Exit Sub
End If

End Sub


Formun zaman dolduğunda olayındaki kodlar;

Private Sub Form_Timer()


100

Dim db As Database
Dim rst As Recordset

Set db = CurrentDb()
Set rst = db.OpenRecordset("srg_balyalanacakkayitlar")

rst.MoveLast
        
Me.mtn_kontrol = rst.RecordCount

mtn_balyasayisi.Requery

If Val(Me.mtn_kontrol) < Val(Me.mtn_balyasayisi) Then

MsgBox (mtn_kontrol & "-" & mtn_balyasayisi)

MsgBox " Balyalama işlemi sona erdi. Tabloda balya yapılmamış gurup varsa eczane sayısını artırarak yeniden deneyebilirsiniz."

Me.TimerInterval = 0
Exit Sub

ElseIf Val(Me.mtn_kontrol) > Val(Me.mtn_balyasayisi) Then

GoTo 100

End If

rst.MoveFirst

Do While Not rst.EOF
 
    GToplam = GToplam + rst![Reçete Sayısı]
    GEvrakNo = GEvrakNo & "," & rst![Evrak_No]
   
    rst.MoveNext
    
Loop
     Me.mtn_kayittoplam = GToplam
     Me.mtn_evraknumaralari = Mid(GEvrakNo, 2, Len(GEvrakNo))
     Me.Metin40 = Dsum ("[Kutu Adedi]", "srg_balyalanacakkayitlar")
     For xx = 1 To 10
          
        A = 148 * xx
        B = 153 * xx
        
       If GToplam > A And GToplam < B Then
         
            If Dsum ("[Kutu Adedi]", "srg_balyalanacakkayitlar") < 10 Then
               
               MsgBox (DSum("[Kutu Adedi]", "srg_balyalanacakkayitlar"))
               
               For z = 1 To 10
               
               Controls("Metin" & z).BackColor = vbWhite
               
               Next z
                
               Controls("Metin" & xx).BackColor = vbYellow
                            
               DoCmd.SetWarnings False
               DoCmd.RunSQL "UPDATE Eczacılık SET tarandı = '1', [Balya No] = " & BalyaNo & " WHERE (((Evrak_No) In (" & Me.mtn_evraknumaralari & ")))"
               DoCmd.SetWarnings True
               Me.mtn_balyalanmayan = "Balyalanmayan Evrak Sayısı : " & DCount("*", "Eczacılık", "[Grubu]=  '" & Me.acl_grubu & "' And [Balya No] Is Null")
        
               BalyaNo = BalyaNo + 1
               mtn_sayim = 1
               
               Me.mtn_balyano = "Balya No: " & BalyaNo
               
               Exit For
               Exit Sub
            End If
       End If
        
     Next xx
     
     Me.mtn_sayim = Nz(Me.mtn_sayim, 0) + 1

    If Me.mtn_sayim > 5000 Then
        MsgBox ("Balyanacak uygun reçete bulunamadı")
        Me.TimerInterval = 0
        Exit Sub
    End If
     
    
    rst.Close

End Sub
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task