Điền tên đơn vị tự động (1 người xem)

  • Thread starter Thread starter na_an
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

na_an

Thành viên chính thức
Tham gia
23/2/10
Bài viết
89
Được thích
4
Chào các bạn!
Các bạn xem file mình gửi kèm và giúp mình vấn đề này với.
Hàng ngày mình phải lấy dữ liệu ở trên mạng về( dữ liệu lấy theo ngày, mỗi ngày để vào một file riêng biệt giống như bảng 1,2,3 mình gửi). Sau đó hàng tháng mình phải tổng hợp lại để báo cáo theo từng xe và từng đội xe. Hiện tại mới chỉ có 12 xe thôi sang tháng số xe sẽ tăng lên vì thế mình chuyển dữ liệu qua access để làm. Vấn đề ở đây là mình không biết làm thế nào để điền tên đội xe vào trường đơn vị sao cho đúng với số xe. Hiện tại thì mình vẫn làm thủ công. Tức là copy dữ liệu từ excel sang sau đó rồi điền tên đơn vị bằng tay. Bây giờ số xe ít có thể làm như vậy được nhưng đến khi số xe nhiều hơn nữa thì không thể làm vậy được vì không nhớ được xe nào thuộc đội nào. Mình đã từng nghĩ sẽ thiết kế trường đơn vị lookup sang bảng đơn vị nhưng như vậy cũng không được vì như lý do như mình nói. Có bạn nào biết cách điền tên đơn vị tự động mỗi khi mình copy dữ liệu từ excel sang không giúp mình với.
Mình cảm ơn rất nhiều!
 
Access 2003 mình chưa rành

Hình như bạn dùng update query là cập nhật được mà;

Còn đây là mình đưa sang excel đây, bạn tham khảo cho vui nha
PHP:
Option Explicit
Sub Update()
 Dim Cls As Range, Rng As Range, Sh As Worksheet
 
 Set Sh = Sheets("S0"):          Sheets("SoLieu").Select
 Set Rng = Sh.Range(Sh.[A1], Sh.[a65500].End(xlUp))
 On Error Resume Next
 For Each Cls In Range([C2], [C65500].End(xlUp))
   Cls.Offset(, -1).Value = Rng.Find(Cls.Value, , xlFormulas, xlWhole).Offset(, 1).Value
 Next Cls
End Sub
 

File đính kèm

Ban ơi không làm ở excel được. Vì có nhiều yêu cầu mà chỉ access mới đáp ứng được thôi. update query thì làm thế nào vậy. Bạn hướng dẫn mình được không.
 
Mình mới tu nghiệp cấp tốc & hướng dẫn bạn tạm vậy nha

Bạn tạo thêm 1 bảng nữa có tên [Doi Xe] gồm 2 trường
[SoXe] có kiểu dữ liệu là chuỗi, độ dài 8 để chứa biển số xe;
[Doi] cũng là chuỗi độ dài ~ 4
Chứa các mã tên của đội xe; Mình ví dụ D1, D2, XC & D4,. . . .
Bạn nhập dữ liệu đủ vô như trang tính bài trên hay như bảng sau:

SoXe|Doi
101|D1
102|D1
103|D1
104|D1
105|D1
106|D1
202|D2
211|D2
230|D2
231|XC
101|D1
14L-8437|D4
14L-8442|D4
Sau đó vô ngăn query; Chọn cả 2 bảng làm nguồn cho 1 query mới toanh;
Dòng đầu của cột đầu ta chọn trường [DonVi]; dòng 2 ta chọn tất nhiên là [SoLieu]; Vô menu Query ta chọn dòng Update query;
Ở dòng thứ 3 (Update query bạn nhập [Doi Xe].[Doi] (Là tên trường mà ta thỏa thuận gán cho bảng vừa tạo;
Bạn dùng chuột nối liên kết giữa 2 trường [Soxe] & [SoXe] của 2 bảng tính;
Bạn có thể bấm vô nút Run có trên menu này để có kết quả như í.

Nếu bạn không biết Update query thì còn i tờ về access lắm đó nha!
 
Lần chỉnh sửa cuối:
Đúng rồi. Mình đau có biết gì nhiều đâu. Do yêu cầu công việc nên phải làm. Mình vừa làm vừa đi hỏi thôi.
Cảm ơn bạn nhé.
 
Bạn ơi. Mình làm như bạn mói rồi. Coi ở query thì thấy có kết quả nhưng sao khi mình mở bảng solieu ra xem thi trương Donvi vẫn bị bỏ trống không thấy điền gì vậy.
 
Bạn xem file nha!

Bạn ơi. Mình làm như bạn mói rồi. Coi ở query thì thấy có kết quả nhưng sao khi mình mở bảng solieu ra xem thi trương Donvi vẫn bị bỏ trống không thấy điền gì vậy.

Bạn thử xóa hết dữ liệu của trường cần update, sau đó chạy query của mình xem sao!
 

File đính kèm

Được rồi bạn ạ. Cảm ơn bạn nhé.
 
Cho mình hỏi thêm.
1. Ở Acc mỗi khi thêm một bản ghi mới thì Acc sẽ tự động thêm 1 bản ghi trống vào. Vậy có cách nào để thêm số dòng trống vào theo ý mình không. Ví dụ thêm 20 bản ghi chẳng hạn.
2. Bây giờ mình muốn thêm trường Ngày vào bảng số liệu. Mình dùng hàm now() để điền ngày tự động nhưng hàm now() lại trả về ngày hiện tại mà dữ liệu của mình thì lại không phải của ngày hiện tại. Ví dụ: hôm nay ngày 7/10/2010 thì mình chỉ lấy được dữ liệu của ngày 6/10 trên mạng về thôi còn ngày mai 8/10 mới lại lấy được của ngày 7/10. Vậy làm thế nào để điền ngày tự động khi mình copy dữ liệu từ excel sang access. Ví dụ hôm nay lấy dữ liệu về mình copy dữ liệu đó sang acc thì nó sẽ tự động điền là ngày 6/10.
 
Câu 1: Bất đồng ngôn ngữ nên chưa hiểu, nhất là "bản ghi"

Câu 2:
Hiệu trong SoLieu có 3 dòng chưa có mã đơn vị (Đang là "?")
Bạn sang ngăn Query & tạo mới query2 với nguồn là table SoLieu;

Dòng đầu tiên: Cột đầu ta chọn trường [Ngay]; Cột fải kề nó ta chọn [Donvi];
Dòng thứ 2 mặc định;
Dòng 3, cột đầu ta nhập Date()-1
Dòng 4 tại cột 2 ta nhập "?"; Sau khi {ENTER} access sẽ thêm thành Like "?"

Sau khi nhấn nút Run trong menu Query ta sẽ được cập nhật ngày iêu cầu vô 3 dòng (3 records)

Câu lệnh SQL sẽ thấy như sau:
PHP:
UPDATE solieu SET solieu.Ngay = Date()-1 WHERE (((solieu.Donvi) Like "?"));
Bạn thực hiện & tự ngẫm nghỉ xem nha! (Bài trên là cập nhật toàn bộ trường; lần này cập nhật có điều kiện)

Thân ái & cương quyết không gởi file lên nữa!
 
Mình làm update đơn vị như bạn hướng dẫn và không có đơn vị nào bị bỏ trống không được điền mã đơn vị tất cả đều được điền và điền đúng.
Mình cũng làm update ngày như bạn nói. Nhưng kết quả không như mình mong muốn. Thay vì điền ngày cho 12 record tiếp theo thi lại thay thế toàn bộ ngày của mình. Trong bảng của mình có bao nhiêu record thì sẽ bị thay bằng bấy nhiêu cái ngày date()-1. Ví dụ có 24 record của 2 ngày 1/10 và 2/10 giờ mình dán thêm 12 record của ngày 3/10 vào sau đó update thì toàn bộ ngày sẽ bị thay bằng ngày 3/10(Ngày 1,2/10 mình điền bằng tay). Mình xin nói thêm ở đây là hàng ngày mình lấy dữ liệu trên mạng về khi copy sang acc mình dán tất cả các ngày vào một bảng chung chứ không phải mỗi ngày có một bảng riêng.
Giờ mình muốn điền ngày cho 12 record tiếp theo mà không bị thay thế ngày của các record trước đó.
 
Chắc bạn có thể chưa hiểu hết cơ chế Update theo điều kiện

Bạn thử thay 3 mã đơn vị bằng '?' & chạy query của bài trên để nó update dữ liệu ngày mới cho những records mà bạn vừa thay mã DonVi xong;

Sau đó ta mới nghĩ đến cách thức cập nhật dữ liệu Ngay vào những dòng đang trống ngày


Chúc bạn tự thành công!
 
Mình đã điền được tên đơn vị và ngày tự động. Chỉ còn tự động thêm số record thì chưa làm được. Mình muốn là sau khi up date ngày và tên đơn vị xong xẽ tự động thêm 12 record mới nữa. Có cách nào tự động thêm record được không. Hiện tại sau mỗi lần pase dữ liệu và up date xong mình phải thêm số record mới bằng tay để ngày hôm sau pase dữ liêu vào và up date như vậy rất mất thời gian(số record mình phải thêm là 12 hoặc nhiều hơn tuỳ theo dữ liệu download về)
 

File đính kèm

Các củ chuối: Chuyển trường đó thành trường thuộc loại AutoNumber là được

Lúc đó bạn thêm record nào thì access sẽ tự động thêm số thứ tự tiếp theo của record ấy cho bạn.

(Hãy chuyển sang định dạng thiết kế & thêm 01 dòng trong menu insert;
Bên cột 'Data Type' ta chọn dòng AutoNumber là được)

Chuyện này có fiền chút đĩnh khi xóa 1 record nào đó, access sẽ không để lại dấu tích về record này ờ trương 'STT' đó nữa'
Nếu muốn trường 'STT' này để lại dấu tích của thông tin record đã bị ta xóa; ta fải dùng hàm tự lập ra để làm việc này;
Nhưng xin lỗi bạn, do bỏ lâu quá rồi nên quên sạch!. . . .

Đại thể là khi ta nhập mới vô trường thứ 2, thì hàm sẽ tìm số hay chuỗi lớn nhất đã có; xử lý & tăng lên 1 đơn vị;
Ví dụ trước đó đã có GPE0012 thì hàm sẽ tự gán mã GPE0013 vô trường 'STT' của record mới nhập này.
 
Web KT

Bài viết mới nhất

Back
Top Bottom