23/11/2017, 15:52
aşağıda verdiğim kod ile ben gelen giden evrak kayıt işlemi yapıyorum ancak aynı anda iki kullanıcı sıra no ver dediği zaman .. aynı sırayı alıyorum. tek kullanımda sorun yok ancak iki ve daha fazla kullanıcıda mükerrer kayıt oluşuyor. ( ÖRNEK 2017/17507 - 2017/17507) gibi
Private Sub Komut11_Click()
Dim b As Integer
b = (Nz(DMax("[FİŞNO]", "Siparişgiden", "[TİPİ]= Forms!frm_siparisgiden!MyTipi And [dizin] = Forms!frm_siparisgiden!Mydizin"), 0)) + 1
If b = 0 Then
If Me.MyTipi = "2013" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2014" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2015" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2016" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2017" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2018" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2019" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2020" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2021" Then
Me.Mynumara = 1
ElseIf Me.MyTipi = "2022" Then
Me.Mynumara = 1
End If
Else
Me.Mynumara = b
End If
'If Me.TİPİ = "2013" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2013'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2013'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2013" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2013'"), 0) + 1
'If Me.TİPİ = "2014" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2014'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2014'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2014" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2014'"), 0) + 1
'If Me.TİPİ = "2015" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2015'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2015'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2015" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2015'"), 0) + 1
'If Me.TİPİ = "2016" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2016'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2016'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2016" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2016'"), 0) + 1
'If Me.TİPİ = "2017" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2017'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2017'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2017" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2017'"), 0) + 1
'If Me.TİPİ = "2018" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2018'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2018'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2018" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2018'"), 0) + 1
'If Me.TİPİ = "2019" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2019'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2019'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2019" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2019'"), 0) + 1
'If Me.TİPİ = "2020" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2020'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2020'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2020" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2020'"), 0) + 1
'If Me.TİPİ = "2021" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2021'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2021'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2021" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2021'"), 0) + 1
'If Me.TİPİ = "2022" And (Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2022'"), 0)) = 0 Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2022'"), 0) + 00000000000: Exit Sub
'If Me.TİPİ = "2022" Then FİŞNO = Nz(DMax("FİŞNO", "Siparişgiden", "TİPİ = '" & "2022'"), 0) + 1
DoCmd.RunCommand acCmdSaveRecord
End Sub
Private Sub Komut6_Click()
On Error GoTo Err_Komut6_Click
DoCmd.GoToRecord , , acNewRec
'Call Kod_Ver
Exit_Komut6_Click:
Exit Sub
Err_Komut6_Click:
MsgBox Err.Description
Resume Exit_Komut6_Click
End Sub
Sub Kod_Ver()
Dim ks, pryd As Integer, gd As String, bslgc As Boolean, SayiDegeri, trz As Long
SayiDegeri = Nz(DMax("id", "Siparişgiden"), 0) + 1
pryd = 10
trz = Fix(SayiDegeri / pryd)
If trz = 0 Then trz = 1
gd = ""
bslgc = False
For ks = 6 To 1 Step -1
If (trz > (26 ^ ks)) Or (bslgc = True) Then
bslgc = True
gd = gd & Chr(64 + Int(trz / (26 ^ ks)))
trz = trz - ((26 ^ ks) * (Int(trz / (26 ^ ks))))
End If
Next ks
gd = gd & Chr(64 + trz)
While InStr(1, gd, "@") > 0
gd = Trim(Left(gd, InStr(1, gd, "@") - 2) _
& Chr(Asc(Mid(gd, InStr(1, gd, "@") - 1, 1)) - 1) _
& "Z" & Mid(gd, InStr(1, gd, "@") + 1, 7))
While Left(gd, 1) = "@"
gd = Trim(Mid(gd, 2, 7))
Wend
Wend
FİŞNO = gd & "-" & Format(SayiDegeri, "00000000")
End Sub