المشاركات : 138
المواضيع 39
:
: 0
الإنتساب : Apr 2008
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله تعالي وبركاته
اذا كان لدي جدولين في الاكسس وبهما الحقول التاليه
جدول1 به
الاسم _ الرقم _ تاريخ الميلاد
جدول2 به
الاسم _ الرقم _ تاريخ الميلاد
اي ان الحقول مكرره في الجدولين
وقمت بادخال سجل في الجدول1
كيف يمكن بضغطه زر واحده ان اقوم بنقل السجل الذي قمت ب إدخاله في جدول1 الي جدول 2
بالدلفي .اي عمل نسخ من الجدول الاول الي الجدول الثاني.
وبارك الله فيكم.
لا اله الا الله
عدد ما كان وعدد ما يكون وعدد الحركات والسكون
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
وعليكم السلام ورحمة الله وبركاته
إقتباس :اي ان الحقول مكرره في الجدولين
قبل انطلاق أي مشروع قواعد بيانات ينبغي إعداد نموذج للجداول والعلاقات
وعند تصميم النموذج ينبغي ألا نجد جداول مكررة ولا نضطر فيما بعد لتكرار سجلات
وبالتالي لن نضطر لعمل مثل هذا.
حاول إعادة صياغة الجداول بطريقة أخرى، بحيث مثلا يكون:
الاسم _ الرقم _ تاريخ الميلاد
في جدول منفرد ثم يرتبط الجدولان به من حقل غريب (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;
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
المشاركات : 138
المواضيع 39
:
: 0
الإنتساب : Apr 2008
سلام عليكم
لكن اذا كان لدي موظفين وانتهت فتره خدمتهم بالموسسه لكن لا **** مسحهم من الجدول بحيث اذا احتجت الي معلوماتهم اقوم بالرجوع لها لكن في نفس الوقت اود وضعهم في جدول منفصل مثلا يسمي الارشيف لذلك اقوم بنقلهم من الجدول الرئيسي الي جدول الارشيف هل من طريقه اخري غير هذه.
لا اله الا الله
عدد ما كان وعدد ما يكون وعدد الحركات والسكون
المشاركات : 429
المواضيع 28
:
: 0
الإنتساب : May 2008
قد يفيدك هذا أيضــا : راجع العنصر الخامس
هنــــــــــــــــا
راجع أيضا الصفحة 69 من كتاب لغة البرمجة دلفي لمحمد خالد ناصر آغا .
بالتوفيق أحي العزيز .
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
إقتباس :ان لدي موظفين وانتهت فتره خدمتهم بالموسسه
ضف للجدول حقل منطقي Boolean
ضع به القيمة True في حالة كان يعمل
ضع القيمة False في حال ترك العمل
وفي تعاملك مع الجدول خذ بعين الاعتبار ذلك الحقل بحيث يظهر فقط المستخدمي ذوي القيمة True
وبالتوفيق
المشاركات : 138
المواضيع 39
:
: 0
الإنتساب : Apr 2008
شكرا للجميع وبارك الله فيكم
اذا في هذه الحاله سادخل الحقل المنطقي في جميع عمليات الفلتره التي اقوم بها بحيث يقوم بالفلتره فقط للذين لهم القيمه true اليس كذلك؟
لا اله الا الله
عدد ما كان وعدد ما يكون وعدد الحركات والسكون
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
نعم، في اي تعامل مع الجدول، فلترة او استعلام sql
وبالتوفيق