المشاركات : 42
المواضيع 7
الإنتساب : Dec 2012
السمعة :
0
الشكر: 76
تم شكره 3 مرات في 3 مشاركات
السلام عليكم استاذتنا الكرام عندي برنامج باراكود واريد اضافة لكل سلعة باراكود وحفضها في قواعد البيانات
السوال كيف يمكنني حفظ الباركود بدون تكرار اي كيف استطيع التاكد من قاعدة البيانات ان هذا الباركود غير موجود هو رقم طبعا المشكلة عندي ماعرف الكود الذي يتحقق فقط من قاعده البيانات
ارجو من ذوي الخبرة مساعدتي وشكرا اخوكم مصطفى
المشاركات : 42
المواضيع 7
الإنتساب : Dec 2012
السمعة :
0
الشكر: 76
تم شكره 3 مرات في 3 مشاركات
شباب ردو علينا جزاكم الله خير الجزاء وهذا شهر رمضان لايضيع فيه الاجر والثواب
المشاركات : 147
المواضيع 41
الإنتساب : Jul 2014
السمعة :
1
الشكر: 387
تم شكره 50 مرات في 6 مشاركات
أخي مصطفى سؤالك غير واضح.. لكن إليك الجواب كما فهمت
كود :
Dim dbConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\DataFile.mdb")
Dim SQLStr As String = "Select Field from Table"
Conn.Open()
Dim cmd As New OleDb.OleDbCommand(SQLStr, Conn)
dr = cmd.ExecuteReader
Try
If dr.Read = True Then
MsgBox("The Barcode is Exist >>")
End If
Conn.Close()
Catch ex As Exception
Conn.Close()
MsgBox(ex.Message, MsgBoxStyle.Critical, " Error")
End Try
طبعاً قاعدة البيانات هنا من نوع Access
{ اللهم علمنا ما ينفعنا وانفعنا بما علمتنا إنك أنت العليم الخبير }
المشاركات : 506
المواضيع 39
الإنتساب : Sep 2013
السمعة :
14
الشكر: 715
تم شكره 578 مرات في 220 مشاركات
السلام عليكم و رحمة الله و بركاته,
أخي الكريم, إجعل حقل (رقم الباركود) في قاعدة البيانات (Unique) و ذلك بجعل الحقل (Indexed) و بهذا فإن قاعدة البيانات ستمنع أي رقم مكرر مدخل في حقل الباركود.
تحياتي.
المشاركات : 42
المواضيع 7
الإنتساب : Dec 2012
السمعة :
0
الشكر: 76
تم شكره 3 مرات في 3 مشاركات
شكرا الكم شباب ونورتونه بمشاركتكم ونصيحتكم الله يزيدكم
المشاركات : 4
المواضيع 0
الإنتساب : Mar 2013
السمعة :
0
الشكر: 0
تم شكره 0 مرات في 0 مشاركات
حفظ السجل بدون تكرار .. من تجربتي
Sub SaveRecords()
Dim SaveMyCmd As New OleDbCommand
SaveMyCmd.Connection = Con
Con.Open()
SaveMyCmd.CommandText = "select * from Students where Stud_Num= " & TxtNum.Text & ""
Dim reader As OleDbDataReader = SaveMyCmd.ExecuteReader
If reader.Read Then
MsgBox(" البيانات موجودة مسبقا؟؟", MsgBoxStyle.Critical, "تنبيه")
reader.Close()
Exit Sub
Else
reader.Close()
End If
With SaveMyCmd
.Connection = Con
.CommandType = CommandType.Text
.CommandText = "insert into Students (Stud_Name,Stud_Num,Stud_Nat,Stud_Age,Stud_Phone,Stud_Mobile,Stud_Address,Stud_Notes) values(?,?,?,?,?,?,?,?)"
.Parameters.Clear()
.Parameters.AddWithValue("@Stud_Name", OleDbType.VarChar).Value = TxtName.Text.Trim
.Parameters.AddWithValue("@Stud_Num", OleDbType.Integer).Value = TxtNum.Text.Trim
.Parameters.AddWithValue("@Stud_Nat", OleDbType.VarChar).Value = TxtNat.Text.Trim
.Parameters.AddWithValue("@Stud_Age", OleDbType.Integer).Value = TxtAge.Text.Trim
.Parameters.AddWithValue("@Stud_Phone", OleDbType.VarChar).Value = TxtTel.Text.Trim
.Parameters.AddWithValue("@Stud_Mobile", OleDbType.VarChar).Value = TxtMobile.Text.Trim
.Parameters.AddWithValue("@Stud_Address", OleDbType.VarChar).Value = TxtAddress.Text.Trim
.Parameters.AddWithValue("@Stud_Notes", OleDbType.VarChar).Value = TxtNotes.Text.Trim
End With
SaveMyCmd.ExecuteNonQuery()
Con.Close()
FrmTree1List2Grid3_Load(Nothing, Nothing)
MsgBox(" تم حفظ البيانات بنجاح ", MsgBoxStyle.Information)
End Su
المشاركات : 4
المواضيع 0
الإنتساب : Mar 2013
السمعة :
0
الشكر: 0
تم شكره 0 مرات في 0 مشاركات
يرجى نسخ الكود وتغيير اتجاهه ويتضح ...
طبعا مع تغيير الحقول ..مفيدوشغال انا عليه .
المشاركات : 179
المواضيع 4
الإنتساب : Sep 2012
السمعة :
3
الشكر: 0
تم شكره 29 مرات في 25 مشاركات
لتجنب تكرار قيمة حتى لو ان قاعدة البيانات لن تسمح بالتكرار فإنك تريد عمل تحقق من المدخلات أليس كذلك ؟
الحالة الأولى :عندما تريد إنشاء سجل جديد
تنفذ هذه الجملة لتحصل على عدد السجلات التي فيها القيمة المميزة
Select Count(*) Where [UniqueField]=@UniqueValue
عندما تنفذ ExecuteScalar ستعود هذه الدالة بقيمة عددية فيها عدد الصفوف الي تحتوي على هذه القيمة
إذا كانت القيمة أكبر من صفر (يعني واحد وفوق) يعني القيمة ستكون مكررة وبالتالي لاتسمج بعملية إنشاء سجل بهذه القيمة
الحالة الثانية: عندما تريد تغيير القيمة لسجل موجود مسبقاً
في هذه الحالة يجب أن يكون لديك PrimaryKey ثابت لايتغير يفضل AutoNumber
ستكون الجملة كالتالي
Select Count(*) Where [UniqueField]=@UniqueValue And [ID]<>@IDValue
ثم تتابع كما في الحالة الأولى