Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Nhập dữ liệu từ nhiều máy qua 1 CSDL trong mạng Lan
#1
Mình muốn nhập dữ liệu từ nhiều máy qua CSDL sau (file đính kèm http://www.mediafire.com/?kn1piqq8i2jzd62
CSDL này đã share full, link talbe qua các máy nội bộ (Lan)
Nhưng khi nhập dữ liệu vào thì nó báo lỗi là trùng MaNhankhau nên không thể nhập.Các ae có thể chỉ cho mình hướng nào mà khi nhập dữ liệu thì nó không báo trùng không.
Đây là code mà mình viết
Mã:
Private Sub Command7_Click()
On Error GoTo Err_Command7_Click
    Dim soCT As Integer
    DoCmd.GoToRecord , , acNewRec
    soCT = Nz(DMax("[Manhankhau]", "Nhankhau"))
    Couter.Value = soCT + 1
    Manhankhau = Format(Couter, "000000000")
Exit_Command7_Click:
    Exit Sub

Err_Command7_Click:
    MsgBox Err.Description
    Resume Exit_Command7_Click
    
End Sub

Mong nhận được hồi âm. Thanks
Chữ ký của hueqlhc Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
ღღღღღTài sản của hueqlhc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
Mong mọi người giúp đỡ.
Chữ ký của hueqlhc Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
ღღღღღTài sản của hueqlhc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
vấn đề của bạn theo Bợm nghĩ là do xung đột giữa kiểu dữ liệu Integer và Text nên hàm DMax làm việc tắc trách (toàn ra giá trị là 0 thôi). Vì kô có dữ liệu để xem nên không biết lỗi ra sao! Thân.

soCT = Nz(DMa"[Manhankhau]", "Nhankhau"))
msgbox soCT
Couter.Value = soCT + 1

bạn chèn dòng này vào kiểm tra thử xem soCT nó có ra đúng kết quả như ý không nhé rồi tính tiếp.
ღღღღღTài sản của bomnhauag (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
(27-03-13, 10:39 AM)bomnhauag Đã viết: vấn đề của bạn theo Bợm nghĩ là do xung đột giữa kiểu dữ liệu Integer và Text nên hàm DMax làm việc tắc trách (toàn ra giá trị là 0 thôi). Vì kô có dữ liệu để xem nên không biết lỗi ra sao! Thân.

soCT = Nz(DMa"[Manhankhau]", "Nhankhau"))
msgbox soCT
Couter.Value = soCT + 1

bạn chèn dòng này vào kiểm tra thử xem soCT nó có ra đúng kết quả như ý không nhé rồi tính tiếp.

Mình kiểm tra lai file (mình có đưa đường dẫn mà http://www.mediafire.com/?kn1piqq8i2jzd62) của mình rồi nó vẫn nhảy mà.
Mình đã phát hiện ra lỗi của mình rồi, đó là do khi nhiều người nhập cùng lúc thì nó bị trùng MaNhankhau thì người nào lưu trước thì CSDL chấp nhận, còn người nào lưu sau thì nó không chấp nhận, nó báo lỗi ngay.
Nhưng chưa tìm ra hướng giải quyết. Mong các bạn xem lại giúp. Thanks.
Chữ ký của hueqlhc Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
ღღღღღTài sản của hueqlhc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
Bạn dùng cách cấp MaNhankhau sau thử xem (nghĩa là khi nhấn nút lưu thì nó sẽ kiểm tra rồi cấp MaNhankhau, thiết kế form dạng Unbound data).

Chúc thành công.
Chữ ký của nhannt4 Xin chào, mình là nhannt4, Tham gia http://thuthuataccess.com/forum từ ngày 22-07 -12.
Reply
Những người đã cảm ơn
#6
(27-03-13, 11:10 AM)hueqlhc Đã viết:
(27-03-13, 10:39 AM)bomnhauag Đã viết: vấn đề của bạn theo Bợm nghĩ là do xung đột giữa kiểu dữ liệu Integer và Text nên hàm DMax làm việc tắc trách (toàn ra giá trị là 0 thôi). Vì kô có dữ liệu để xem nên không biết lỗi ra sao! Thân.

soCT = Nz(DMa"[Manhankhau]", "Nhankhau"))
msgbox soCT
Couter.Value = soCT + 1

bạn chèn dòng này vào kiểm tra thử xem soCT nó có ra đúng kết quả như ý không nhé rồi tính tiếp.

Mình kiểm tra lai file (mình có đưa đường dẫn mà http://www.mediafire.com/?kn1piqq8i2jzd62) của mình rồi nó vẫn nhảy mà.
Mình đã phát hiện ra lỗi của mình rồi, đó là do khi nhiều người nhập cùng lúc thì nó bị trùng MaNhankhau thì người nào lưu trước thì CSDL chấp nhận, còn người nào lưu sau thì nó không chấp nhận, nó báo lỗi ngay.
Nhưng chưa tìm ra hướng giải quyết. Mong các bạn xem lại giúp. Thanks.
Cách đơn giản nhất là thiết kế thêm cột ID, vời kiểu dữ liệu của cột này là autonumber, set cột này làm khóa chính... Sẽ giải quyết được vấn đề nhập trùng.
Chữ ký của domfootwear Xin chào Guest, nếu Guest biết thủ thuật nào thì nên chia sẻ cho cộng đồng nhé.
ღღღღღTài sản của domfootwear (View All Items) ღღღღღ
Reply
Những người đã cảm ơn hueqlhc
#7
Mình cũng đã gặp tình trạng tương tự như bạn. Ban đầu mình cũng định dùng ID (Autonumber) để cấp phát Số nhưng phải nhập số liệu trên Mainform thì ID mới có giá trị và Link đến Subform (Nếu có) được do đó cũng sẽ gặp một vài rắc rối neeusu trên Main Default tất cả các control.
Mình giải quyết bằng cách dùng Unbound trên Mainform, tạo một SubCapso cấp số tạm cho Mainform và lưu vào TableCapso (Để link đến Subform). Khi User nào bấm nhập SL trước, cấp số trước ... và khi User nào lưu trước thì được cấp SoCT trước và lưu trữ vào TableMain và TableSub. Số trên Main chỉ dùng để link (hiển thị) chứ không ảnh hưởng gì đến việc lưu trữ và xem, xử lý thông tin sau này.

Thân !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#8
(26-03-13, 11:27 AM)hueqlhc Đã viết: Mình muốn nhập dữ liệu từ nhiều máy qua CSDL sau (file đính kèm http://www.mediafire.com/?kn1piqq8i2jzd62
CSDL này đã share full, link talbe qua các máy nội bộ (Lan)
Nhưng khi nhập dữ liệu vào thì nó báo lỗi là trùng MaNhankhau nên không thể nhập.Các ae có thể chỉ cho mình hướng nào mà khi nhập dữ liệu thì nó không báo trùng không.
Đây là code mà mình viết
Mã:
Private Sub Command7_Click()
On Error GoTo Err_Command7_Click
    Dim soCT As Integer
    DoCmd.GoToRecord , , acNewRec
    soCT = Nz(DMax("[Manhankhau]", "Nhankhau"))
    Couter.Value = soCT + 1
    Manhankhau = Format(Couter, "000000000")
Exit_Command7_Click:
    Exit Sub

Err_Command7_Click:
    MsgBox Err.Description
    Resume Exit_Command7_Click
    
End Sub

Mong nhận được hồi âm. Thanks

Do không hiểu cách tạo CSDL của bạn như thế nào nhưng xin gợi ý với bạn thế này. MaNhanKhau nên quản lý theo phường hoặc một cấp nào đó tùy theo cách quản lý. Lấy MaPhuong nối vói SoCT sẽ được MaNhanKhau. Quy định mỗi máy chỉ nhập cho một số phường nhất định thì sẽ tránh được tình trạng nhập trung nói trên
Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn hueqlhc


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 39 06-12-16, 02:23 AM
Bài mới nhất: maidinhdan
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 209 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq
  [Hỏi] Tổng hợp dữ liệu theo thời gian hoanghai902 1 142 21-10-16, 09:55 PM
Bài mới nhất: maidinhdan
  [Help] Giúp đỡ về cách xóa nội dung trong một field nam8384 2 120 17-10-16, 08:43 PM
Bài mới nhất: toancvp
  [Hỏi] Sử dụng chuột giữa trong subform là report. toancvp 10 362 12-10-16, 01:01 AM
Bài mới nhất: toancvp

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ