Đánh giá chủ đề:
  • 6 Votes - 3.33 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Đặt và sử dụng biến mảng như thế nào?
#1
Tôi có một table có field CACSO để lưu nhiều giá trị cho một biến. Khi đến giá trị nào, thì tôi sẽ lấy giá trị đó để gán cho biến. Cụ thể nhé:
Field CACSO của tôi có các giá trị: 01, 02, 03 (hoặc có thể là các số khác), cùng trong một record
Tôi tìm trong một thư mục bất kỳ, nếu có các file A01, A02, A03 thì copy ra (hoặc một số file khác theo khai báo trong CACSO). Đang loay hoay không biết làm thế nào. Nhờ các PRO chỉ giúp.
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
Bạn cứ cho nó là 1 string, rồi nối tên các file đó với nhau. Đặt 1 ký tự ngăn cách chính giữa, ví dụ: "|"

Sau này khi cần truy cập tới giá trị nào thì ta dùng hàm mid, kết hợp với hàm InStr([start, ]string1, string2[, compare])

Hướng thứ 2 bạn có thể tạo 1 table lưu các tên này. Sau này truy xuất cho đơn giản! Cứ mỗi tên file thì ta cho vào 1 record.
--------------------------------------------
' Code của Noname + Haquocquan. Vui lòng giữ tên tác giả nếu bạn dùng lại code này

Mã:
Private Sub Command3_Click()

Dim Tenfile As String
Dim L1 As Integer
S = Me.txtFileList.Value
Do
L1 = InStr(S, ",") '=> L1 là vi. trí ?a^`u tiên da^'u pha^?y
If L1 > 0 Then
Tenfile = Left(S, L1 - 1) '=> tên file ?a^`u tiên tìm tha^'y
S = Right(S, Len(S) - L1)  
Else
    Tenfile = S   '

End If
' làm gì đó với tên file ở đây
DoCmd.TransferDatabase acLink, "dBase IV", Application.CurrentProject.Path & "\", acTable, Tenfile & ".dbf", Tenfile, False
Loop While L1 > 0
End Sub

DownloadDemo
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan
#3
Cám ơn Noname. Nhưng có thể do mình đưa ra ý tưởng chưa rõ ràng.
Mình có rất nhiều file: A01, A02,....., A10 (file DBF hoặc Excel). Mỗi một lần chỉ cần dùng đến 1 đến 3 file là cùng; tùy từng người dùng, có người cần A01, A05; có người chỉ cần A02;......
Mình tạo một textbox trên form (nguồn là field của table) để cho người dùng chọn mình cần file nào. Nếu chỉ có 1 file thì không có vấn đề gì, nhưng nếu người đó chọn 2 file trở lên (họ sẽ gõ vào textbox: A01, A03 chẳng hạn). Thì mình gặp vấn đề, làm sao cho chương trình hiểu được sẽ lấy 2 file A01 và A03.
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
(07-11-10, 01:57 PM)haquocquan Đã viết: Cám ơn Noname. Nhưng có thể do mình đưa ra ý tưởng chưa rõ ràng.
Mình có rất nhiều file: A01, A02,....., A10 (file DBF hoặc Excel). Mỗi một lần chỉ cần dùng đến 1 đến 3 file là cùng; tùy từng người dùng, có người cần A01, A05; có người chỉ cần A02;......
Mình tạo một textbox trên form (nguồn là field của table) để cho người dùng chọn mình cần file nào. Nếu chỉ có 1 file thì không có vấn đề gì, nhưng nếu người đó chọn 2 file trở lên (họ sẽ gõ vào textbox: A01, A03 chẳng hạn). Thì mình gặp vấn đề, làm sao cho chương trình hiểu được sẽ lấy 2 file A01 và A03.

Vậy có thể Put vào 1 table với 2 field sau: select( yes/no), filename
Rồi cho nó là 1 subform. Vậy người dùng click chọn vào nút select kề bên.
Khi ta tính toán, chị lọc ra những file nào có cột select = yes!
Cái này mình áp dụng cho bộ phận Sales chọn mã hàng để làm offer hoặc hợp đồng hiệu quả lắm!

Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan
#5
Áp dụng vào bài của mình không ổn, Noname a. Mình nghĩ tiếp và hỏi bạn sau nhé. Thanks.
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn nhunguyet0103
#6
Có cách rồi. Chưa chạy, nhờ Noname xem giúp xem thuật toán có ổn không nhé:

Tạo hàm:
Mã:
Function NhapFile(DsFile as Variant)
if isnull(DsFile) then
Msgbox "Khong co du lieu"
Else
for Each I in DsFile
DoCmd.TransferSpreadsheet , 8, I, "c:\hh\" & I & ".xls", True
Next I
End if
End function

Lấy dữ liệu:
Mã:
Private Sub LayDL_Click()
Nhapfile(forms!frm1!txtDsFile)
End sub
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname , nhunguyet0103
#7
hihi, chưa thử nữa! Bạn làm được thì làm 1 cái demo nhỏ nhỏ lên cho mọi người tham khảo nha! Chắc thú vị và cần cho mọi người lắm! thumbs up
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn nhunguyet0103
#8
Không giải quyết được vấn đề.
Khi mình khai báo cố định, thì OK.
Nhưng khi lấy giá thị từ textbox thì bị lỗi: tất cả những gì nhập vào textbox, chương trình lại hiểu là 1 giá trị của mảng. Không biết làm sao tách được ra (các giá trị nhập vào cách nhau dấu phẩy (,)).
Noname có cách nào tư vấn giúp nhé. Tách chuỗi trong textbox ra thành từng chuỗi nhỏ (mỗi chuỗi cách nhau dấu phẩy (,).
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#9
ý là thế này:
Mã:
Dim Tenfile as String
dim L1 as Integer
S=textbox1
Do
L1=Instr(",",S) '=> L1 là vị trí đầu tiên dấu phẩy
If L1>0 then
tenfile= Left(S, L1) '=> tên file đầu tiên tìm thấy
S= Right(S, Len(S)-L-1)
' làm gì đó với tên file ở đây
end if
Loop While L1>0


Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan
#10
Cám ơn Noname rất nhiều. Mình đã làm được rồi.
Xin phép sửa lại lệnh của Noname một chút nhé.
Xin mời xem thử DEMO dưới đây


File đính kèm
.rar   THU.rar (Kích cỡ: 68.77 KB / Tải về: 34)
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Sử dụng phần mềm viết bằng Access trong mạng LAN chantroi_19 9 753 21-06-16, 10:33 AM
Bài mới nhất: lmthu
  Dung lượng đ.ồ á.n access lớn? tienze123 2 186 21-06-16, 09:16 AM
Bài mới nhất: lmthu
  chạy file access trên mạng internet thanhtruong 15 862 11-06-16, 01:38 AM
Bài mới nhất: nguyenvantien87
  Danh sách các Keys word VBA access (Không dùng để đặt tên cho các Object) tranthanhan1962 1 336 28-05-16, 04:08 PM
Bài mới nhất: jason
  Vấn đề file ảnh và dung lượng file access nam8384 2 173 29-03-16, 04:44 PM
Bài mới nhất: nam8384

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ơ