السلام عليكم ورمضان كريم
في الكود ادناه لاضافة ترقيم جديد مع ظهور السنة الحالية مثلا 1000/2012 و 2000/2012 وهكذا وذلك عند اضافة الكود على زر اضافة سجل جديد فهل صحيح هذا الكود ؟
Dim vLast As Variant
Dim iNext As Integer
vLast = DMax("[Recode]", "tCandidate", "[Recode] LIKE '" & Format(Date, "yyyy\*\'"))
If IsNull(vLast) Then
iNext = 1
Else
iNext = Val(Mid(vLast, 7, 4)) + 1
End If
Me![ReCode] = Format(Date, "yyyy") & "/" & Format(iNext, "000")واذا كان البيانات يتم استيرادها من ملف اكسل كما هو بالكود ادناه فكيف يتم التعديل لظهور الكود يظهر الترقيم بالسنة الحالية اي يتم تجديد الترقيم كل سنة جديدة
Private Sub CmdImport_Click()
Dim strPath As String
Dim strSQL As String
strPath = Application.CurrentProject.Path & "\fileReg.xls"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tCandidateTemp", strPath, True
DoCmd.SetWarnings False
'*******************************************************************************************************
strSQL = "INSERT INTO tCandidate ( [Job Number], [ROP Licence Number], ROPLicenceCategory, ROPLicenceExpiryDate, FirstName, SecondName, FamilyName, GSM, Nominator, [Language], DateofBirth, [GEC No], [DDCCode], [PDO Permit], [HSE Passprt No],[recode])"
strSQL = strSQL & "SELECT tCandidateTemp.[Job Number], tCandidateTemp.[ROP Licence Number], tCandidateTemp.[ROP Licence Categories], tCandidateTemp.[ROP Licence Expiry Date], tCandidateTemp.FirstName, tCandidateTemp.[Second Name], tCandidateTemp.FamilyName, tCandidateTemp.GSM, tCandidateTemp.Nominator, tCandidateTemp.Language, tCandidateTemp.[Date of Birth], tCandidateTemp.[GEC No], tCandidateTemp.[DDCCode], tCandidateTemp.[PDO Permit], tCandidateTemp.[HSE Passprt No], tCandidateTemp.[recode]"
strSQL = strSQL & "FROM tCandidateTemp;"
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
DoCmd.DeleteObject acTable, "tCandidateTemp"
MsgBox "Been Imported And Save the Data Successfully"
End Sub
Private Sub MyAutonumber()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim i As Integer
Dim xx, mymask As String
Dim td As DAO.TableDef
Dim fld As DAO.Field
mymask = "0000" & Chr(34) & "/2010" & Chr(34)
Set db = CurrentDb
Set td = db.TableDefs("tCandidateTemp")
Set fld = td.Fields("Recode")
fld.Properties.Append fld.CreateProperty("InputMask", dbText, mymask)
'Me!ReCode = Nz(DMax("[ReCode]", "[tCandidate]"), 0) + 1
xx = Nz(DMax("[ReCode]", "[tCandidate]"), 0)
Set rs = CurrentDb.OpenRecordset("tCandidateTemp")
'Set rs = Me.Recordset.clone
rs.MoveFirst
For i = 1 To rs.RecordCount
rs.Edit
rs!ReCode = xx + i
rs.Update
rs.MoveNext
Next
rs.Close
End Sub