Danh sách tên Excel có thể được sử dụng để tìm kiếm Access cho các tên giống nhau không?
(Văn phòng 2010 ).
Câu hỏi này liên quan đến một công ty luật sử dụng cơ sở dữ liệu Access để lưu trữ tên và các thông tin khác, bao gồm cả việc cá nhân hoặc tổ chức đã từng là khách hàng hay đối thủ, vấn đề / trường hợp của công ty và luật sư được chỉ định. Công ty có nghĩa vụ tìm kiếm cơ sở dữ liệu mỗi khi có khả năng đại diện để xác định liệu có bất kỳ xung đột lợi ích nào nếu công ty đại diện cho bên đó hay không. Đôi khi, công ty tham gia vào các vụ kiện tập thể liên quan đến hàng nghìn khách hàng cá nhân trong lớp. Chúng tôi sẽ nhận được danh sách các tên mà chúng tôi phải tìm kiếm trong cơ sở dữ liệu Access của mình để xác định xem có tên nào đã từng là khách hàng hay đối thủ hay không.
Tìm kiếm cơ sở dữ liệu là tìm kiếm boolean vì một số tên được nhập vào cơ sở dữ liệu với họ trước và một số có tên trước. Theo đó, nếu chúng tôi tìm kiếm cơ sở dữ liệu cho John Smith, chúng tôi có biểu mẫu tìm kiếm Access cho phép chúng tôi tìm kiếm John VÀ Smith trong hai ô riêng biệt, sẽ tìm thấy mọi thứ có tên John và Smith bất kể tên được nhập vào như thế nào. kho dữ liệu. Ngoài ra, tìm kiếm cũng sẽ tìm thấy các kết quả phù hợp từng phần, ví dụ: tìm kiếm American AND Insurance sẽ mang lại mọi thực thể có tên American và Insurance, cho dù là Bảo hiểm Bắc Mỹ; Bảo hiểm Tây Nam Mỹ, v.v.
Bây giờ chúng tôi muốn có một cách để tìm kiếm cơ sở dữ liệu Access của mình bằng cách sử dụng danh sách tên Excel thay vì phải nhập tên của từng cá nhân hoặc thực thể theo cách thủ công - và sau đó sử dụng danh sách bảng tính Excel để bằng cách nào đó liên kết đến cơ sở dữ liệu Access của chúng tôi và tìm kiếm cơ sở dữ liệu cho các tên có trong bảng tính Excel. Kết quả sẽ được tạo thành một bảng tính Excel riêng biệt hoặc nếu có thể sử dụng báo cáo kết quả tìm kiếm Access của chúng tôi, điều đó sẽ rất nổi bật.
Mục đích ở đây là để tránh nhập thủ công từng tên và thực thể vào biểu mẫu tìm kiếm Access của chúng tôi. Thay vào đó, hãy liên kết một bảng Excel hoặc thậm chí một bảng Access khác với cơ sở dữ liệu Access chính của chúng tôi, để chúng tôi có thể loại bỏ quy trình thủ công.
Có cách nào có thể thực hiện được điều này không?
Câu trả lời:
Có, với một số cảnh báo khá lớn. Bạn có thể sử dụng Dữ liệu ngoài ... Excel ... Liên kết để liên kết bảng tính của bạn với Access, sau đó chạy Truy vấn bằng cách sử dụng dữ liệu bảng tính của bạn để tìm kiếm bảng Access.
Báo trước là bạn rõ ràng đang thực hiện một cuộc tìm kiếm khá mờ nhạt. "J. Smith" có phù hợp với "John Smith" không? Còn "John K. Smith" thì sao? "John Smythe"? Làm thế nào các tên được lưu trữ trong bảng Access - trong một trường, được chia thành các trường họ và tên, hoặc thậm chí tốt hơn?
Có lẽ bạn có thể đăng thêm một số chi tiết về biểu mẫu tìm kiếm Access hiện tại của mình, ví dụ: mã SQL của truy vấn mà nó gọi hoặc chương trình VBA thực hiện tìm kiếm.
Câu trả lời:
Cảm ơn bạn đã trả lời. Nếu một cái gì đó như J VÀ Smith được tìm kiếm, kết quả sẽ là bất kỳ tên nào bắt đầu bằng chữ cái "J" và bất kỳ họ nào của Smith hoặc chứa Smith. Ví dụ: nếu họ là "Smithson" thì họ sẽ hiển thị trong kết quả tìm kiếm vì nó chứa 'Smith'. Nói cách khác, tìm kiếm rất rộng, bao gồm bất kỳ thứ gì có chữ cái đầu ở giữa, chẳng hạn như John J. Smith hoặc Smithson có thể là kết quả tìm kiếm khi tìm kiếm J VÀ Smith. Nếu tìm kiếm giống như J. (có dấu chấm) VÀ Smith, thì kết quả sẽ được giới hạn cho tất cả các tên bắt đầu bằng J. và tất cả các họ bằng Smith, kể cả Smithson, v.v. Nhưng nếu không có dấu chấm sau J, thì tìm kiếm sẽ tìm mọi tên bắt đầu bằng chữ J, chẳng hạn như Jack, John, Joe, Jerry, Jason, v.v. và mọi thứ có họ của Smith hoặc có chứa Smith.
Đối với cách tên được lưu trữ trong cơ sở dữ liệu Access, chúng được lưu trữ trong một ô và có thể được nhập tên và họ hoặc họ trước bằng dấu phẩy, sau đó đến tên. Tương tự với tên doanh nghiệp. Mọi thứ được nhập vào một ô. Vì vậy, không có trường tên, chữ đệm hoặc trường tên và trường họ hoặc trường riêng biệt cho tên pháp nhân doanh nghiệp.
Biểu mẫu tìm kiếm cơ sở dữ liệu Access rất đơn giản. Nghĩa là, nó có một trường ở bên trái để nhập bất kỳ thứ gì liên quan đến tên cụ thể đang được tìm kiếm, cho dù họ, tên hay thực thể kinh doanh. Không quan trọng những gì được nhập vào ô. Sau đó, có một danh sách thả xuống, cho phép lựa chọn các cụm từ / toán tử tìm kiếm Boolean như, VÀ, HOẶC và KHÔNG, và một trường khác ở bên phải danh sách thả xuống, cho phép cụm từ tìm kiếm thứ hai, nếu có là một. Nếu không có, thì NONE được chọn, có nghĩa là trường thứ hai không được sử dụng. Nếu tôi muốn tìm kiếm John Smith, tôi sẽ nhập John vào trường đầu tiên, sau đó chọn toán tử Boolean AND, sau đó chọn Smith trong trường bên phải (về mặt kỹ thuật, tôi có thể đảo ngược thứ tự các cụm từ tìm kiếm trong trường bên trái và bên phải, chẳng hạn như họ trong trường một và tên trong trường hai). Tìm kiếm này sẽ mang lại mọi thứ với John và Smith, Smithson, v.v. bất kể tên có chứa tên đệm hay chữ viết tắt hay không. Việc tìm kiếm chỉ quan tâm đến việc tìm bất cứ thứ gì có chứa John AND Smith.
Câu trả lời:
Tôi thấy điều này hơi kỳ quặc. Tôi tự hỏi liệu có phải người thiết kế tìm kiếm đã thiết kế cơ sở dữ liệu này không. Cơ chế tìm kiếm, mặc dù đơn giản, cho thấy kiến thức về Access trên mức trung bình. Mặt khác, việc sử dụng một trường để đặt tên cho thấy sự thiếu kiến thức về thiết kế cơ sở dữ liệu.
Khi xây dựng cơ sở dữ liệu, mỗi trường phải là một phần dữ liệu duy nhất. Tôi thường sử dụng năm trường cho tên người: Lời chào (Ông, Bà, v.v.) Đầu tiên, Giữa, Họ, Hậu tố (Jr, Sr, v.v.). Tôi hơi bị sốc khi một công ty luật không yêu cầu thiết kế cơ bản này.
Thành thật mà nói, tôi thực sự sẽ đề nghị rằng việc thiết kế lại cơ sở dữ liệu nên được xem xét một cách mạnh mẽ.
Nhưng điều đó không trả lời câu hỏi của bạn. Câu trả lời là Có, bạn có thể liên kết đến trang tính Excel, sau đó lặp lại từng bản ghi trong trang tính và áp dụng cùng một logic được sử dụng trong quy trình tìm kiếm của bạn để kiểm tra từng bản ghi với cơ sở dữ liệu của bạn.
Câu trả lời:
Tôi biết thiết kế cơ sở dữ liệu, về cấu trúc tên, để lại rất nhiều điều mong muốn. Về việc liên kết danh sách tên Excel với cơ sở dữ liệu Access, bạn có nói rằng một liên kết cơ bản, như được cung cấp bên dưới sẽ hoạt động không ?:
Kết nối cơ sở dữ liệu Access với sổ làm việc của bạn
- Trên tab Dữ liệu , trong nhóm Lấy Dữ liệu Ngoài , hãy bấm Từ Truy cập .

- Trong hộp thoại Chọn Nguồn Dữ liệu , hãy duyệt đến cơ sở dữ liệu Access .
- Trong hộp thoại Chọn bảng , chọn bảng hoặc truy vấn bạn muốn sử dụng và bấm OK .
- Bạn có thể nhấp vào Kết thúc hoặc nhấp vào Tiếp theo để thay đổi chi tiết cho kết nối.
- Trong hộp thoại Nhập Dữ liệu , hãy chọn nơi đặt dữ liệu trong sổ làm việc của bạn và xem dữ liệu dưới dạng bảng, báo cáo PivotTable hay PivotChart.
- Nhấp vào nút Thuộc tính để đặt các thuộc tính nâng cao cho kết nối, chẳng hạn như các tùy chọn để làm mới dữ liệu được kết nối.
- Theo tùy chọn, bạn có thể thêm dữ liệu vào Mô hình Dữ liệu để bạn có thể kết hợp dữ liệu của mình với các bảng khác hoặc dữ liệu từ các nguồn khác, tạo mối quan hệ giữa các bảng và làm được nhiều hơn những gì bạn có thể làm với báo cáo PivotTable cơ bản.
- Nhấn OK để hoàn tất.
Câu trả lời:
Tôi muốn kết nối theo cách khác: vì bạn đang tìm kiếm một bảng Access với dữ liệu từ Excel, bạn nên sử dụng tab "Dữ liệu Bên ngoài" trong cơ sở dữ liệu Access. Chọn Excel, chọn hộp dưới cùng "Liên kết đến nguồn dữ liệu ..." và xây dựng truy vấn hoặc mã của bạn từ đó.
Câu trả lời:
Như John đã nói, không bạn đi theo con đường khác. Bạn kết nối từ Access với Excel. Những gì bạn cho thấy là kết nối Excel với Access (Nhân tiện, những biểu tượng đó trông giống như Office 2013, nhưng bạn cho biết bạn đang làm việc với 2010).
Sau khi được liên kết, bạn có thể sử dụng bảng được liên kết như với bất kỳ bảng Access nào.
Câu trả lời:
Bạn có bất kỳ ý tưởng nào mà tôi có thể tìm thấy thứ gì đó để giúp tôi hiểu mã truy vấn SQL nào tôi sẽ cần không? Tôi hiểu rằng mã sẽ phải được viết theo cách sao cho nó tích hợp với mã truy vấn Access hiện tại của chúng tôi, nhưng có mã Access trích xuất tên từ danh sách Excel? Đây sẽ là một mã lặp lại, vì vậy Access lấy từng tên một từ Excel, chạy truy vấn cho từng tên? Về cơ bản, chỉ cần loại bỏ mã Access hiện tại, nhưng sửa đổi nó để liên kết với bảng tính Excel.
Câu trả lời:
Bạn sẽ sử dụng một vòng lặp như:
Làm mờ db dưới dạng cơ sở dữ liệu
Dim rs As Recordset
Dim strFirst As String, strLast As String, strSQL As String
SET db = CurrentDB ()
SET rs = db.OpenRecordset ("tên liên kết")
rs.MoveFirst
Do While not rs.EOF
strFirst = rs.Fields ("firstname") 'sử dụng tên cột thực từ bảng được liên kết
strLast = rs.Fields ("lastname") 'sử dụng tên cột thực từ bảng được liên kết
<ở đây bạn sẽ sử dụng mã của mình để kiểm tra sự trùng khớp>
If Match = True Then 'Nếu tìm thấy một kết quả phù hợp
strSQL = "CHÈN VÀO TblMatches (Firstname, Lastname) VALUES ('" & strFirst & "', '" & strLast & "');"
CurrentDB.Execute strSQL
Kết thúc nếu
rs.MoveNext
Vòng
DoCmd, .OpenTable "tblMatches"
Đặt rs = Không có gì
Đặt db = Không có gì
Tuyên bố từ chối trách nhiệm: Đây là "aircode" ngoài đầu tôi nhưng nó sẽ cung cấp cho bạn một ý tưởng.
Sau khi mã này chạy, bạn sẽ thấy một bảng có các tên được đánh dấu là trùng khớp.
Câu trả lời:
Cám ơn rất nhiều!
Tôi sẽ xem liệu chúng ta có thể bắt đầu quá trình và thực hiện một số thử nghiệm hay không. Nếu điều này hoạt động, nó sẽ tiết kiệm rất nhiều thời gian nhập liệu thủ công.
Câu trả lời:
Vì vậy, bạn có thể sử dụng thời gian bạn tiết kiệm được để thiết kế lại cơ sở dữ liệu cho hiệu quả hơn. ;)
Comments
Post a Comment