Giúp em chép field từ 2 bảng trong foxpro

Liên hệ QC

ngmcuongbl

Thành viên chính thức
Tham gia
19/12/08
Bài viết
73
Được thích
2
Em có bảng 1(maso,ten,...)với đầy đủ dữ liệu ; bảng 2(maso, ten) chỉ có các mã số còn tên trống làm sao để dựa vào mã số bên bảng 2 em có thể chép tên từ bảng 1. Xin nhờ sự giúp đỡ.

Mình có ví dụ rồi đó bảng 1: Ma: 01, ten: A;Ma:02, ten:B,...còn bảng 2 chỉ có mã mình cần dựa vào cái mã này để chép tên từ bảng 1 qua mình đã làm theo code sau nhưng nó chỉ copy được có 1 cái hà:
SELECT BIEU
GOTO TOP
do while
not EOF('BIEU')
IF BIEU.MATHUE=DTNT.MASO
REPLACE BIEU.TEN WITH DTNT.HOTEN
*SKIP
ENDIF
SKIP
1
*SELECT bieu
*USE IN bieu
enddo
 
Chỉnh sửa lần cuối bởi điều hành viên:
UpDate

Mình có ví dụ rồi đó bảng 1: Ma: 01, ten: A;Ma:02, ten:B,...còn bảng 2 chỉ có mã mình cần dựa vào cái mã này để chép tên từ bảng 1 qua mình đã làm theo code sau nhưng nó chỉ copy được có 1 cái hà:
SELECT BIEU
GOTO TOP
do while not EOF('BIEU')
IF BIEU.MATHUE=DTNT.MASO
REPLACE BIEU.TEN WITH DTNT.HOTEN
*SKIP
ENDIF
SKIP 1
*SELECT bieu
*USE IN bieu
enddo

Bạn dùng lệnh UpDate (của SQL, không phải hàm update hay lệnh update của Fox) để cập nhật dữ liệu thì đơn giản hơn.
Với dữ liệu của bạn thì cú pháp tổng quát sẽ là:

UpDate BIEU Set BIEU.mathue = DTNT.maso From DTNT Where BIEU.ten = DTNT.hoten

Với lưu ý là phải chỉ ra vị trí chính xác của 2 file BIEU và DTNT trong cú pháp trên.
(nếu viết trong chương trình thì gán 2 chuỗi cho 2 biến Bieu và DtNt, sau đó dùng macro để truy xuất, ví dụ:
Bieu = 'C:\MyData\Bieu.Dbf'
DtNt = 'C:\MyData\DtNt.Dbf'

Update &Bieu Set ... From & &DtNt Where ...
 
Cám ơn bạn nhưng câu lệnh của bạn bị ngược rồi: UpDate BIEU Set BIEU.ten = DTNT.hoten From DTNT Where BIEU.mathue = DTNT.maso
 
Bạn ơi, vậy bạn pots file ví dụ chạy được lên để mọi người cùng học hỏi thêm được không.
 
không Index lên là không được đâu.
bạn dùng cái này : đặt mối quan hệ set relation
USE (bang1) alias q
INDEX ON maso TAG maso
sele 0
use (bang2)
set relation to maso into q
REPLACE ALL (bang2.ten) WITH (q.ten) for bang2.ten==bang1.ten

CLOSE ALL
 
Web KT
Back
Top Bottom