بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله تعالي وبركاته
اذا كان لدي جدولين في الاكسس وبهما الحقول التاليه
جدول1 به
الاسم _ الرقم _ تاريخ الميلاد
جدول2 به
الاسم _ الرقم _ تاريخ الميلاد
اي ان الحقول مكرره في الجدولين
وقمت بادخال سجل في الجدول1
كيف يمكن بضغطه زر واحده ان اقوم بنقل السجل الذي قمت ب إدخاله في جدول1 الي جدول 2
بالدلفي .اي عمل نسخ من الجدول الاول الي الجدول الثاني.
وبارك الله فيكم.
وعليكم السلام ورحمة الله وبركاته
إقتباس :اي ان الحقول مكرره في الجدولين
قبل انطلاق أي مشروع قواعد بيانات ينبغي إعداد نموذج للجداول والعلاقات
وعند تصميم النموذج ينبغي ألا نجد جداول مكررة ولا نضطر فيما بعد لتكرار سجلات
وبالتالي لن نضطر لعمل مثل هذا.
حاول إعادة صياغة الجداول بطريقة أخرى، بحيث مثلا يكون:
الاسم _ الرقم _ تاريخ الميلاد
في جدول منفرد ثم يرتبط الجدولان به من حقل غريب (Foreign key).
هذا الإجراء يقوم بتكرار السجل في نفس الجدول:
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
QueryCopy: TQuery;
begin
QueryCopy := TQuery.Create(Self);
with QueryCopy do
begin
DatabaseName := Table1.DatabaseName;
SQL.Clear;
SQL.Add('SELECT * FROM biolife');
Open;
Bookmark := Table1.Bookmark;
end;
try
With QueryCopy do
begin
Table1.Append;
Table1.Fields.Fields[0].AsInteger := Table1.RecordCount +1;
for i := 1 to FieldCount -1 do
Table1.Fields.Fields[i].assign(Fields.Fields[i]);
try
Table1.Post;
Except on Exception do
Table1.Cancel;
end;
end; // with
finally
QueryCopy.Free;
end;
end;
إجراء آخر،بطريقة أخرى:
PHP كود :
procedure DuplicateCurrentRecord(FirstField: Variant; aDataSet : TDataSet);
var
Data : array of variant;
aRecord : array of TVarRec;
i : integer;
max : integer;
begin
max := aDataSet.fields.count -1;
// set the lenghth of the arecord array to be the same as the number of
// elements in the data array
SetLength(aRecord, max+1);
SetLength(Data, max+1);
// set the variant type pointers to the data array
for i := 0 to max do
begin
aRecord[i].VType := vtVariant;
aRecord[i].VVariant := @Data[i];
end;
// Copy the Record to the Array
for i := 1 to max do
Data[i] := aDataSet.fields[i].value;
Data[0] := FirstField;
// finally append the record in one go
aDataSet.AppendRecord(aRecord);
end;
بالتوفيق.
سلام عليكم
لكن اذا كان لدي موظفين وانتهت فتره خدمتهم بالموسسه لكن لا **** مسحهم من الجدول بحيث اذا احتجت الي معلوماتهم اقوم بالرجوع لها لكن في نفس الوقت اود وضعهم في جدول منفصل مثلا يسمي الارشيف لذلك اقوم بنقلهم من الجدول الرئيسي الي جدول الارشيف هل من طريقه اخري غير هذه.
قد يفيدك هذا أيضــا : راجع العنصر الخامس
هنــــــــــــــــا
راجع أيضا الصفحة 69 من كتاب لغة البرمجة دلفي لمحمد خالد ناصر آغا .
بالتوفيق أحي العزيز .
إقتباس :ان لدي موظفين وانتهت فتره خدمتهم بالموسسه
ضف للجدول حقل منطقي Boolean
ضع به القيمة True في حالة كان يعمل
ضع القيمة False في حال ترك العمل
وفي تعاملك مع الجدول خذ بعين الاعتبار ذلك الحقل بحيث يظهر فقط المستخدمي ذوي القيمة True
وبالتوفيق
شكرا للجميع وبارك الله فيكم
اذا في هذه الحاله سادخل الحقل المنطقي في جميع عمليات الفلتره التي اقوم بها بحيث يقوم بالفلتره فقط للذين لهم القيمه true اليس كذلك؟
نعم، في اي تعامل مع الجدول، فلترة او استعلام sql
وبالتوفيق