Applies ToAccess cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Chủ đề này mô tả thủ tục sắp xếp địa chỉ Giao thức Internet (IP) được lưu trữ trong cơ sở Access dữ liệu.

Giới thiệu

Nếu bạn làm việc với địa chỉ IP, có thể bạn đã biết rằng nó không đơn giản như làm việc với văn bản hoặc số. Điều này là do địa chỉ IP thực sự là tập hợp bốn giá trị số được phân tách bằng dấu chấm (.), trong đó mỗi giá trị là một số từ 0 đến 255. Bảng sau đây hiển thị dữ liệu trước khi áp dụng bất kỳ thứ tự sắp xếp nào.

MACHINEID

Nhân viên

Vị trí

IPAddress

1

...

...

123.4.245.23

2

...

...

104.244.253.29

3

...

...

1.198.3.93

4

...

...

32.183.93.40

5

...

...

104.30.244.2

6

...

...

104.244.4.1

Việc sắp xếp địa chỉ IP trong Access là một thách thức vì Access không cung cấp kiểu dữ liệu đặc biệt để lưu trữ địa chỉ IP. Mặc dù địa chỉ IP chỉ là một tập hợp các số, bạn không thể lưu trữ địa chỉ IP trong trường số. Điều này là do trường số chỉ hỗ trợ một dấu thập phân (.), trong khi địa chỉ IP có chứa ba dấu chấm (.). Điều này có nghĩa là bạn phải lưu trữ các địa chỉ trong một trường văn bản.

Vì bạn lưu trữ địa chỉ IP trong trường văn bản nên bạn không thể sử dụng các nút sắp xếp tích hợp sẵn trong Access để sắp xếp địa chỉ theo cách có ý nghĩa. Các nút sắp xếp luôn sắp xếp các giá trị trong một trường văn bản theo thứ tự bảng chữ cái, ngay cả khi các ký tự là số. Nói cách khác, địa chỉ được sắp xếp theo chữ số đầu tiên, sau đó theo chữ số thứ hai, v.v. thay vì theo các giá trị số tạo nên địa chỉ. Bảng sau đây hiển thị các địa chỉ từ bảng trước được sắp xếp theo thứ tự bảng chữ cái trên trường IPAddress.

MACHINEID

IPAddress

3

1.198.3.93

2

104.244.253.29

6

104.244.4.1

5

104.30.244.2

1

123.4.245.23

4

32.183.93.40

Các địa chỉ bắt đầu bằng 1 được hiển thị trước các địa chỉ bắt đầu bằng 2, v.v. Bảng sau đây hiển thị các địa chỉ theo thứ tự tăng dần chính xác.

MACHINEID

IPAddress

3

1.198.3.93

4

32.183.93.40

5

104.30.244.2

6

104.244.4.1

2

104.244.253.29

1

123.4.245.23

Để giúp dễ hiểu các bước liên quan đến việc sắp xếp các địa chỉ này, bạn hãy ngắt địa chỉ IP thành bốn phần số. Các địa chỉ phải được sắp xếp theo phần đầu tiên, sau đó cho mỗi giá trị trong phần đầu tiên, sau đó theo phần thứ hai, v.v. Bảng hiển thị từng phần trong một cột khác nhau và vì các cột chứa các giá trị số đơn giản nên có thể sắp xếp các cột từ trái sang phải theo thứ tự tăng dần, như minh họa trong bảng sau đây.

Parti

PartII

Phần Ii

PartIV

1

198

3

93

32

183

93

40

104

30

244

2

104

244

4

1

104

244

253

29

123

4

245

23

Sắp xếp bốn phần riêng biệt là thủ thuật đằng sau việc sắp xếp địa chỉ IP. Trong quy trình sau đây, bạn tạo một truy vấn, ngoài trường địa chỉ IP, bao gồm bốn cột được tính toán, trong đó mỗi cột lưu trữ một phần giá trị địa chỉ. Cột được tính thứ nhất sẽ giữ phần số đầu tiên của địa chỉ, cột được tính thứ hai sẽ giữ phần số thứ hai của địa chỉ, v.v. Thay vì sắp xếp các bản ghi theo trường IPAddress, truy vấn sẽ sắp xếp các bản ghi theo bốn cột được tính toán.

Tạo truy vấn

Bạn sẽ tạo một truy vấn chọn có tên Là địa chỉ IP đã sắp xếp hiển thị các bản ghi theo thứ tự tăng dần của địa chỉ IP. Giả sử cơ sở dữ liệu hiện tại có một bảng có tên là MachineDetails bao gồm một trường văn bản có tên là IPAddress.

  1. Bấm Tạo Thiết > Kế Truy vấn. 

  2. Chọn Thêm Bảng (Hiển thị Bảng trong Access) và kéo Chi tiết Máy vào mục trên của Dạng xem Thiết kế.

  3. Kéo các trường MachineID và IPAddress vào lưới thiết kế truy vấn.

  4. Bây giờ bạn đã sẵn sàng để thêm các cột được tính toán. Trong cột trống đầu tiên ở bên phải, nhập biểu thức PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],".") -1)) trong hàng Trường . Biểu thức trả về các ký tự trước dấu chấm đầu tiên (.) trong trường IPAddress.

    Bây giờ, hãy xem lại biểu thức. Vì bạn không biết có bao nhiêu chữ số tạo thành phần đầu tiên của địa chỉ nên bạn sử dụng hàm InStr để tìm vị trí của dấu chấm đầu tiên. Trừ 1 (để loại trừ dấu chấm) trả về số chữ số ở phần đầu tiên. Sau đó, bạn sử dụng số này với hàm Left để trích xuất nhiều ký tự, bắt đầu từ ký tự ngoài cùng bên trái, từ trường IPAddress. Cuối cùng, bạn gọi hàm Val để chuyển đổi các ký tự mà hàm Left trả về thành một số. Bước cuối cùng này là cần thiết vì kiểu dữ liệu cơ sở là Văn bản.

  5. Lưu truy vấn bằng cách bấm vào Lưu trên Thanh công cụ Truy nhập Nhanh. Bạn nên thực hiện việc này sau mỗi bước trung gian.

  6. Thêm cột cho phần địa chỉ thứ hai. Trong cột bên phải PartI, nhập PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],".") +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) trong hàng Trường. Biểu thức trả về các ký tự nằm giữa dấu chấm đầu tiên và kỳ thứ hai trong trường IPAddress.

    Một lần nữa, xem lại biểu thức. Vì bạn không biết có bao nhiêu chữ số tạo thành phần thứ hai của địa chỉ hoặc chính xác nơi phần thứ hai bắt đầu (vì bạn không biết phần đầu tiên dài bao lâu), bạn sử dụng hàm InStr để tìm vị trí của các dấu chấm. Sau đó, bạn sử dụng hàm Mid để trích xuất các ký tự theo sau dấu chấm đầu tiên nhưng trước dấu chấm thứ hai. Cuối cùng, bạn gọi hàm Val để chuyển đổi các ký tự mà hàm Mid trả về thành một số. Bước cuối cùng này là cần thiết vì kiểu dữ liệu cơ sở là Văn bản.

  7. Thêm cột cho phần địa chỉ thứ ba. Trong cột bên phải PartII, nhập PartIII: Val(Mid([IPAddress],InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) trong hàng Trường. Biểu thức trả về các ký tự nằm giữa dấu chấm thứ hai và thứ ba trong trường IPAddress.

    Một lần nữa, xem lại biểu thức. Vì bạn không biết có bao nhiêu chữ số tạo thành phần thứ ba của địa chỉ hoặc chính xác nơi phần thứ ba bắt đầu (vì bạn không biết phần đầu tiên và phần thứ hai dài bao lâu), bạn sử dụng hàm InStr để tìm vị trí của các dấu chấm. Sau đó bạn dùng hàm Mid để trích xuất các ký tự theo sau dấu chấm thứ hai nhưng trước dấu chấm thứ ba. Cuối cùng, bạn gọi hàm Val để chuyển đổi các ký tự mà hàm Mid trả về thành một số. Bước cuối cùng này là cần thiết vì kiểu dữ liệu cơ sở là Văn bản.

  8. Thêm cột cho phần địa chỉ thứ tư và cuối cùng. Trong cột bên phải PartIII, nhập PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],"."))) trong hàng Trường. Biểu thức trả về các ký tự theo sau dấu chấm cuối cùng.

    Một lần nữa, xem lại biểu thức. Điều quan trọng là để tìm vị trí của giai đoạn thứ ba và sau đó trích xuất tất cả các ký tự theo sau nó. Vì bạn không biết chính xác kỳ thứ ba nằm ở đâu, bạn gọi hàm InStr ba lần để tìm vị trí của dấu chấm thứ ba. Sau đó bạn dùng hàm Len để tính toán số chữ số trong phần thứ tư. Sau đó, số chữ số được trả về sẽ được dùng với hàm Right để trích xuất nhiều ký tự từ phần bên phải của trường IPAddress. Cuối cùng, bạn gọi hàm Val để chuyển đổi các ký tự mà hàm Mid trả về thành một số. Bước cuối cùng này là cần thiết vì kiểu dữ liệu cơ sở là Văn bản.

  9. Đặt hàng Sắp xếp của cả bốn cột được tính thành Tăng dần.

    Quan trọng    Hàng Sắp xếp của cột IPAddress phải được để trống.

    Nếu bạn muốn sắp xếp theo các giá trị trường khác, ngoài các địa chỉ, hãy đặt các trường ở bên trái hoặc bên phải của cả bốn cột được tính toán. Không đặt các trường sắp xếp khác giữa các cột được tính toán.

  10. Bước tiếp theo là ẩn bốn cột được tính toán khỏi biểu dữ liệu. Nhưng trước khi bạn thực hiện điều đó, hãy chuyển sang dạng xem Biểu dữ liệu để xem kết quả của biểu thức trong các cột được tính toán. Bảng sau đây hiển thị các cột bạn sẽ thấy trong dạng xem Biểu dữ liệu.

    MACHINEID

    IPAddress

    Parti

    PartII

    Phần Ii

    PartIV

    3

    1.198.3.93

    1

    198

    3

    93

    4

    32.183.93.40

    32

    183

    93

    40

    5

    104.30.244.2

    104

    30

    244

    2

    6

    104.244.4.1

    104

    244

    4

    1

    2

    104.244.253.29

    104

    244

    253

    29

    1

    123.4.245.23

    123

    4

    245

    23

  11. Chuyển trở lại dạng xem Thiết kế và bỏ chọn hộp kiểm trong hàng Hiển thị của cả bốn cột được tính toán. Điều này ngăn không cho các cột được tính toán được hiển thị trong dạng xem Biểu dữ liệu.

  12. Hoặc bạn có thể chỉ định các tiêu chí để loại trừ bản ghi khỏi truy vấn.

  13. Chuyển sang dạng xem Biểu dữ liệu để xem các bản ghi theo thứ tự đã sắp xếp. Bạn sẽ thấy các bản ghi được sắp xếp đúng theo thứ tự tăng dần của các địa chỉ IP.

Sử dụng nhiều hơn cho địa chỉ IP đã sắp xếp

Xác thực địa chỉ IP trong khi nhập dữ liệu

Nếu bạn muốn xác thực địa chỉ mà không cần viết mã, bạn có thể thực hiện trong một mức độ giới hạn bằng cách đặt thuộc tính InputMask của trường thành ###.###.###.####; 0;" " và thuộc tính Format của trường địa chỉ IP để&&&&&&&&&&&&.

Dấu hiệu nhập có tác dụng gì? Khi bạn bắt đầu nhập vào trường địa chỉ, dấu hiệu nhập sẽ ngăn bạn nhập các ký tự không phải là số và khoảng trắng giữa ba dấu chấm. Nếu phần số là số có hai chữ số, hãy để trống chữ số thứ ba hoặc nhập dấu cách. Lưu ý rằng dấu hiệu nhập này không cảnh báo người dùng nếu bỏ qua việc nhập một hoặc nhiều phần của địa chỉ hoặc chỉ nhập dấu cách thay vì giá trị số. Ví dụ: "345. .3. " sẽ được chấp nhận là địa chỉ hợp lệ.

Định dạng hiển thị có tác dụng gì? Khi bạn nhập xong và rời khỏi trường, định dạng hiển thị sẽ loại bỏ các khoảng trắng trong địa chỉ và chỉ hiển thị các số và dấu chấm. Vì vậy, nếu bạn đã nhập "354,35,2,12 ", địa chỉ sẽ được hiển thị là "354.35.2.12". Lưu ý rằng nếu bạn bấm vào bên trong địa chỉ hoặc nhấn F2 (để vào chế độ chỉnh sửa) khi địa chỉ được chọn, dấu cách sẽ xuất hiện lại.

Mẹo: Nếu bạn muốn sao chép địa chỉ, hãy di chuyển đến cột hoặc điều khiển trước đó, nhấn TAB để chọn địa chỉ được định dạng, rồi bấm Sao chép. Bằng cách này, bạn sẽ không sao chép chuỗi địa chỉ có chứa khoảng trắng.

Sắp xếp bản ghi trong một biểu mẫu hoặc báo cáo theo địa chỉ IP

Nếu bạn cần tạo biểu mẫu hoặc báo cáo trong đó các bản ghi được sắp xếp theo địa chỉ IP, hãy tạo đối tượng mới dựa trên truy vấn sắp xếp địa chỉ như được mô tả trước đó, thay vì trên bảng lưu trữ địa chỉ.

Đầu Trang

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.