Xin Giúp Đỡ Sửa Code Update

Liên hệ QC

tuantu315

Thành viên hoạt động
Tham gia
30/9/13
Bài viết
141
Được thích
38
Mã:
Dim dong As Long, Gttim As String
    Gttim = Trim(Me.MaHang.Value)
  dong = Sheet3.Range("E:E").Find(Gttim, LookIn:=xlValues).Row
                Sheet3.Cells(dong, 6).Value = Me.Tenhang.Value
                Sheet3.Cells(dong, 7).Value = Me.Donvi.Value
                Sheet3.Cells(dong, 9).Value = Me.Mau.Value
                Sheet3.Cells(dong, 10).Value = Me.Size.Value
                Sheet3.Cells(dong, 11).Value = Me.Kieu.Value
                Sheet3.Cells(dong, 12).Value = Me.Gianhap.Value
                Sheet3.Cells(dong, 13).Value = Me.Giabuon.Value
                Sheet3.Cells(dong, 14).Value = Me.Giale.Value
                Sheet3.Cells(dong, 15).Value = Me.barcode.Text
                Call Locthongtin_hh
Em có dòng code như trên chủ yếu để update thông tin và giá của sản phẩm tiêu chí là Mã Hàng Hóa không được thay đỗi (Mã HH nằm ở cột E). Vấn đề Em gặp phải là :
- Ví dụ có 2 Mã hàng hóa : K7 và PK7 em chỉ muốn update thông tin từ mã hàng K7 (đã thành công) nhưng code trên lại update luôn mã PK7 như vậy có nghĩa là khi update thông tin từ mã hàng K7 thì mã hàng pk7 cũng update giống như mã hàng K7.
- Em nghi lỗi xãy ra ở dòng code tô đậm (dong = Sheet3.Range("E:E").Find(Gttim, LookIn:=xlValues).Row) nhưng chưa nghĩ ra cách giải quyết. Mong nhận được sự giúp đỡ từ Anh/Chị diễn đàn. Em cảm ơn !!!
 
Thêm 1 tham số nữa:
.Find(Gttim, LookIn:=xlValues).Row, LookAt:=xlWhole)
 
Upvote 0
Chưa thành công đâu, Vì cần lưu ý trường hợp không tìm thấy Mã đang nhập--> sửa code thêm
Nếu thật sự quan trọng thì phải tính đến trường hợp mã dài quá, gõ nhầm thì sao? ABC123465 gõ thành ABC123456, nó chĩa vào trật chỗ.
Phần mềm update nghiêm chỉnh thì lúc gõ mã vào, nó tìm và đăng chi tiết hàng lên. Người gõ có thể kiểm chứng lại là mình lấy đúng hàng.
Ở đây chỉ có phần update thôi. Ai biết trước đó đã có phần tìm hàng?
 
Upvote 0
Mã:
Dim dong As Long, Gttim As String
    Gttim = Trim(Me.MaHang.Value)
  dong = Sheet3.Range("E:E").Find(Gttim, LookIn:=xlValues).Row
                Sheet3.Cells(dong, 6).Value = Me.Tenhang.Value
                Sheet3.Cells(dong, 7).Value = Me.Donvi.Value
                Sheet3.Cells(dong, 9).Value = Me.Mau.Value
                Sheet3.Cells(dong, 10).Value = Me.Size.Value
                Sheet3.Cells(dong, 11).Value = Me.Kieu.Value
                Sheet3.Cells(dong, 12).Value = Me.Gianhap.Value
                Sheet3.Cells(dong, 13).Value = Me.Giabuon.Value
                Sheet3.Cells(dong, 14).Value = Me.Giale.Value
                Sheet3.Cells(dong, 15).Value = Me.barcode.Text
                Call Locthongtin_hh
Em có dòng code như trên chủ yếu để update thông tin và giá của sản phẩm tiêu chí là Mã Hàng Hóa không được thay đỗi (Mã HH nằm ở cột E). Vấn đề Em gặp phải là :
- Ví dụ có 2 Mã hàng hóa : K7 và PK7 em chỉ muốn update thông tin từ mã hàng K7 (đã thành công) nhưng code trên lại update luôn mã PK7 như vậy có nghĩa là khi update thông tin từ mã hàng K7 thì mã hàng pk7 cũng update giống như mã hàng K7.
- Em nghi lỗi xãy ra ở dòng code tô đậm (dong = Sheet3.Range("E:E").Find(Gttim, LookIn:=xlValues).Row) nhưng chưa nghĩ ra cách giải quyết. Mong nhận được sự giúp đỡ từ Anh/Chị diễn đàn. Em cảm ơn !!!
Cái này bạn nhập trên Form không biết có combobox hay Listbox, Listview hiển thị không nếu có thì khi chọn trên Listbox, Listview thì lấy cái Rowindex trên đó + với row trên Excel là ra cái dòng cần Update trên Sheet
 
Upvote 0
Cái này bạn nhập trên Form không biết có combobox hay Listbox, Listview hiển thị không nếu có thì khi chọn trên Listbox, Listview thì lấy cái Rowindex trên đó + với row trên Excel là ra cái dòng cần Update trên Sheet[/QUOT
Thực ra code mình như Anh VetMini hướng dẫn thì đã ok rồi. Chính xác là do bị thiếu tham số LookAt , Việc update dữ liệu thực ra cũng có nhiều cách viết code Sử dụng array với lập vòng for cũng là 1 cách nhưng mình thì lại thích dùng method find hơn.
 
Upvote 0
Thực ra code mình như Anh VetMini hướng dẫn thì đã ok rồi. Chính xác là do bị thiếu tham số LookAt , Việc update dữ liệu thực ra cũng có nhiều cách viết code Sử dụng array với lập vòng for cũng là 1 cách nhưng mình thì lại thích dùng method find hơn.
:p:p:p:p:p Tùy theo nhu cầu của bạn :p:p:p:p:p
 
Upvote 0
Không tìm thấy Gttim đó, khi đó thì cần xử lý
Ah mình hiểu rồi cái đó là bắt lỗi thì bỏ nó vào If là ok rồi..
Bài đã được tự động gộp:

Nếu thật sự quan trọng thì phải tính đến trường hợp mã dài quá, gõ nhầm thì sao? ABC123465 gõ thành ABC123456, nó chĩa vào trật chỗ.
Phần mềm update nghiêm chỉnh thì lúc gõ mã vào, nó tìm và đăng chi tiết hàng lên. Người gõ có thể kiểm chứng lại là mình lấy đúng hàng.
Ở đây chỉ có phần update thôi. Ai biết trước đó đã có phần tìm hàng?
Dạ Chính xác như anh nói trước khi muốn update cần phải tìm thông tin dữ liệu trước, sau khi tìm thành công thì mới sửa đước và khi sửa còn bắt thêm 2 lớp ràng buộc để tránh người sử dụng nhập sai.
1.png
 
Lần chỉnh sửa cuối:
Upvote 0
Ah mình hiểu rồi cái đó là bắt lỗi thì bỏ nó vào If là ok rồi..
Bài đã được tự động gộp:


Dạ Chính xác như anh nói trước khi muốn update cần phải tìm thông tin dữ liệu trước, sau khi tìm thành công thì mới sửa đước và khi sửa còn bắt thêm 2 lớp ràng buộc để tránh người sử dụng nhập sai.
View attachment 208548
Màu mè thật, tôi chỉ nhắc vậy thôi, vì chỉ nhìn thấy đoạn code nhỏ, còn kiểm soát là việc của bạn - người trực tiếp viết code thì mới có cái nhìn tổng thể. Biết là tốt rồi.
 
Upvote 0
Web KT

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

Back
Top Bottom