Xu Hướng 11/2022 # Các Kiểu Dữ Liệu Cơ Bản Trong Bảng Microsoft Access / 2023 # Top 11 View | Bac.edu.vn

Xu Hướng 11/2022 # Các Kiểu Dữ Liệu Cơ Bản Trong Bảng Microsoft Access / 2023 # Top 11 View

Bạn đang xem bài viết Các Kiểu Dữ Liệu Cơ Bản Trong Bảng Microsoft Access / 2023 được cập nhật mới nhất trên website Bac.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Trong bài trước, chúng ta đã biết cách để tạo bảng trong Access, trong bài viết này, chúng ta sẽ đi tìm hiểu về các kiểu dữ liệu hay các trường dữ liệu tạo nên mỗi bảng của Access. Mới đầu khi nghe nhắc tới khái niệm kiểu dữ liệu, các bạn có thể cảm thấy khó hiểu khi dữ liệu kiểu text có thể chứa được không những các đoạn văn, các kí tự mà còn các con số nữa nhưng dữ liệu kiểu Number lại chỉ chứa được dữ liệu là những con số mà thôi. Trong trường hợp nào, chúng ta dùng kiểu dữ liệu như thế nào cho hợp lý thì chúng ta sẽ theo dõi trong phần sau đây:

Dữ liệu kiểu Text / Short Text trong Access

Dữ liệu kiểu Text hay Short Text trong Access dùng trong trường hợp chúng ta muốn lưu trữ tên riêng, địa chỉ, tên đường, tên phố …

Dữ liệu kiểu Number

Dữ liệu kiểu Number phù hợp cho việc lưu trữ dữ liệu như số lượng của một sản phẩm, khoảng cách, số học sinh, số khách hàng, v.v …

Dữ liệu kiểu Currency

Dữ liệu kiểu Currency phù hợp cho việc lưu trữ lượng tiền của một đơn vị tiền tệ nhất định. Lưu ý: trong trường hợp bạn làm việc với nhiều đơn vị tiền tề thì không nên dùng kiểu dữ liệu Currency này, mà cần tách riêng giá trị tiền tệ và đơn vị tiền tệ ra làm 2 trường riêng biệt trong bảng.

Dữ liệu kiểu Yes/No

Dữ liệu kiểu Yes/No phù hợp với các câu trả lời hay các trường mà chỉ cần lưu trữ giá trị có hoặc không, ví dụ khi bạn lưu trữ dữ liệu về nhân viên để tính thuế thu nhập, thì sẽ có 1 trường là “Đã có con hay chưa” thì kiểu dữ liệu của trường này có thể là Yes/No

Dữ liệu kiểu Date/Time

Dữ liệu kiểu Date/Time phù hợp cho việc lưu trữ giá trị về thời gian

Dữ liệu kiểu Rich Text

Dữ liệu kiểu Rich Text phù hợp cho việc lưu trữ dữ liệu cả kiểu chữ và cả kiểu số với định dạng về font chữ và màu sắc và có thể được hiển thị trên những control có hỗ trợ rich text

Dữ liệu kiểu Calculated Field

Dữ liệu kiểu Calculated Field lưu trữ giá trị được tính toán từ trường khác trong cùng bảng

Dữ liệu kiểu Attachment

Dữ liệu kiểu Attachment phù hợp với việc lưu trữ file đính kèm

Dữ liệu kiểu Hyperlink

Dữ liệu kiểu Hyperlink lưu trữ siêu liên kết

Dữ liệu kiểu Memo / Long Text

Dữ liệu kiểu Memo/Long text lưu trữ dữ liệu là những đoạn text dài, dài hơn lượng text mà kiểu dữ liệu Short Text cho phép

Các Kiểu Dữ Liệu Trong Mysql / 2023

Dữ liệu là gì?

Ví dụ, khi bạn lên Facebook để đăng ký tài khoản. Hệ thống yêu cầu cung cấp: Họ tên, ngày sinh, giới tính, số điện thoại,…. Sau khi bấm nút đăng ký, những thông tin đó được lưu vào hệ thống (tức là lưu vào cơ sở dữ liệu), thì những thông tin được lưu trong cơ sở dữ liệu đó được gọi là DỮ LIỆU.

Kiểu dữ liệu là gì?

Nhắc lại ví dụ trên, chúng ta có một mẫu dữ liệu đăng ký tài khoản như sau

Dữ liệu ở cột HỌ TÊN có dạng chuỗi ký tự, nên người ta gọi cột HỌ TÊN có kiểu dữ liệu là

Dữ liệu ở cột NGÀY SINH có dạng ngày tháng, nên người ta gọi cột NGÀY SINH có kiểu dữ liệu là kiểu ngày tháng

Dữ liệu ở cột GIỚI TÍNH có dạng chuỗi ký tự, nên người ta gọi cột GIỚI TÍNH có kiểu dữ liệu là

Dữ liệu ở cột SỐ ĐIỆN THOẠI có dạng số nguyên, nên người ta gọi cột SỐ ĐIỆN THOẠI có kiểu dữ liệu là kiểu số nguyên

Các kiểu dữ liệu trong MySQL

Trong MySQL, kiểu dữ liệu được chia làm ba loại chính: kiểu số, kiểu văn bản, kiểu ngày tháng

TINYINT(size)

Lưu trữ một số nguyên có giá trị từ -128 đến -127 hoặc 0 đến 255

SMALLINT(size)

Lưu trữ một số nguyên có giá trị từ -32768 đến 32767 hoặc 0 đến 65535

MEDIUMINT(size)

Lưu trữ một số nguyên có giá trị từ -8388608 đến 8388607 hoặc 0 đến 16777215

INT(size)

Lưu trữ một số nguyên có giá trị từ -2147483648 đến 2147483647 hoặc 0 đến 4294967295

BIGINT(size)

Lưu trữ một số nguyên có giá trị từ -9223372036854775808 đến 9223372036854775807 hoặc 0 đến 18446744073709551615.

FLOAT(size,d)

Lưu trữ một số thập phân loại nhỏ (Ví dụ: 567.25). Tham số “size” dùng để xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm). Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm).

DOUBLE(size,d)

Lưu trữ một số thập phân loại lớn. Tham số “size” dùng để xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm). Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm).

DECIMAL(size,d)

Lưu trữ như một chuỗi, cho phép một dấu thập phân cố định. Tham số “size” dùng để xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm). Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm).

CHAR(size)

Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tự

VARCHAR(size)

Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tự. Nếu đặt “size” lớn hơn 255 thì nó sẽ chuyển sang kiểu TEXT

TINYTEXT

Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tự

TEXT

Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 65,535 ký tự

BLOB

Dùng để lưu trữ dữ liệu nhị phân tối đa là 65,535 byte

MEDIUMTEXT

Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 16,777,215 ký tự

MEDIUMBLOB

Dùng để lưu trữ dữ liệu nhị phân tối đa là 16,777,215 byte

LONGTEXT

Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 4,294,967,295 ký tự

LONGBLOB

Dùng để lưu trữ dữ liệu nhị phân tối đa là 4,294,967,295 byte

DATE()

Lưu trữ một ngày theo định dạng YYYY-MM-DD (Ví dụ: 2016-09-12 tức là lưu ngày 12 tháng 9 năm 2016)

TIME()

Lưu trữ thời gian theo định dạng HH:MI:SS (Ví dụ 17:25:36 tức là lưu 17 giờ 25 phút 36 giây)

YEAR()

Lưu trữ một năm theo định dạng hai số hoặc bốn số

DATETIME()

Lưu trữ một ngày cùng với thời gian theo định dạng YYYY-MM-DD HH:MI:SS (Ví dụ: 2016-09-12 17:25:36 tức là lưu ngày 12 tháng 9 năm 2016 lúc 17 giờ 25 phút 36 giây)

Dữ Liệu Kiểu Tệp: Tệp Văn Bản / 2023

Trong Turbo Pascal có một kiểu tệp được định nghĩa trước, đó là tệp văn bản được định nghĩa với từ chuẩn Text

Ví dụ : khai báo các biến tệp F1, F2 có kiểu Text :

Var

F1, F2 : Text ;

Các phần tử của tệp kiểu text là các kí tự song Text File khác với File Of Char ở chỗ Text File được tổ chức thành từng dòng với độ dài mỗi dòng khác nhau nhờ có thêm các dấu hết dòng ( End Of Line) hay dấu chấm xuống dòng. Đó là cặp kí tự điều khiển : CR (Carriage Return : nhảy về đầu dòng, mã ASCII = 13) và LF (Line Feed: nhảy thẳng xuống dòng tiếp theo, mã ASCII = 10). Chúng được nhận dạng để ngăn cách giữa hai dãy kí tự tuơng ứng với hai dòng khác nhau. Dấu CR và LF được màn hình cũng như máy in dùng làm kí tử điều khiển việc xuống đầu dòng tiếp theo.

Ví dụ : đoạn văn bản sau :

vi du van ban

1234

het

được hiểu là máy sẽ chứa trong tệp văn bản thành một dãy như sau :

vi du van ban CR LF 1234 CR LF het EOF

Mặc dù tệp văn bản chứa các kí tự nhưng các thủ tục Read(ln) và Write(ln) có những khả năng đặc biệt để ghi và đọc được cả những số nguyên, số thực, Boolean hoặc String nhờ sự chuyển đổi thích hợp giữa các giá trị này với các dãy kí tự.

A. GHI VÀO TỆP VĂN BẢN:

Chúng ta có thể ghi các giá trị kiểu Integer, Real, Boolean, String vào tệp văn bản bằng lệnh Write hoặc Writeln. Cách ghi này cho phép chuyển các giá trị bằng số sang dạng kí tự tức là dạng đọc được một cách tường minh như trên trang giấy, cho phép viết các bảng dữ liệu… với quy cách mong muốn.

Các cách viết :

Write ( FileVar, Item1, Item2,… ItemN ) ; Writeln ( FileVar, Item1, Item2,… ItemN ) ;

Writeln ( FileVar ) ;

_ Thủ tục Write( FileVar, Item1, Item2,… ItemN ) sẽ viết các giá trị của Item, là các biến, các hằng, hoặc biểu thức có kiểu đơn giản như Integer, Real, Char, Boolean, String vào biến tệp FileVar. Các Item không nhất thiết phải cùng kiểu.

Ví dụ :

Var

I, J : Integer ;

X : Real ;

B : Boolean ;

S5 : String [5] ;

Ta có thể viết :

Write ( FileVar, ‘ Vi du ‘, I, J, X, B, S5, 6, X + I ) ;

_ Thủ tục Write để ghi vào tệp văn bản sẽ không chấp nhận Item là các biến có cấu trúc ( Array, Set, Record và File ).

Ví dụ không thể viết :

vì Nguoi là một biến có cấu trúc.

Cách viết này chỉ được chấp nhận khi FileVar không phải biến tệp mà là tệp chứa các bản ghi NhanSu như ta đã thấy ở các phần trước.

_ Thủ tục Writeln( FileVar, Item1, Item2,… ItemN ) ; sẽ thực hiện việc đưa thêm dấu hiệu hết dòng vào tệp sau khi đã viết hết các giá trị các biến.

_ Thủ tục Writeln( FileVar ) sẽ chỉ thực hiện việc đưa thêm dấu hiệu hết dòng ( cặp kí tự điều khiển CR và LF ) vào tệp, tức là đưa dấu cách dòng vào tệp.

* Cách viết có quy cách tùy vào từng kiểu dữ liệu mà cách viết có khác nhau đôi chút :

_ Nếu VI là biểu thức nguyên :

+ Write ( FileVar, VI ) ; sẽ viết vào tệp FileVar giá trị nguyên VI với đúng số chữ số cần thiết.

+ Write ( FileVar, VI : n ) ; sẽ bố trí n chỗ cho giá trị nguyên VI và căn lề bên phải.

Giả sử VI có giá trị bằng 12345

Write ( FileVar, VI, VI ); cho ra 1234512345

_ Nếu VR là một biểu thức thực

+ Write ( FileVar, VR : n ); cho ra cách biểu diễn số thực dạng có số mũ E tức là dạng viết khoa học của dấu phẩy động, với n chỗ được căn lề bên phải. Số chữ số từ chữ E trở đi luôn luôn là 4 kí tự ( kí tự E rồi đến dấu + hoặc –, cuối cùng là 2 chữ số ). Bên cạnh đó là một chỗ cho dấu chấm và một chữ số trước dấu chấm. Tổng số chỗ bắt buộc phải có là 6. Số còn lại trong quy cách viết này là n – 6 chỗ được dành cho các chữ số sau dấu chấm, còn gọi là các chữ số có nghĩa.

Ví dụ:

VR = 123. 123456

+ Write( FileVar, VR : n : m ) ; máy sẽ bố trí n chỗ cho số thực trong đó có m chỗ giành cho phần thập phân ( m chữ số sau dấu chấm ) và căn lề bên phải. Nếu m = 0, máy sẽ chỉ đưa ra phần nguyên của VR.

Ví dụ :

VR = 123.123456

Write ( FileVar, VR : 15 : 9 ) ; cho ra __123.123456000

_ Nếu VC là một kí tự ( Char )

Ví dụ :

CH = ‘H’ ;

Write ( FileVar, VC : 1 ) ; cho ra H

Write ( FileVar, VC : 2 ) ; cho ra _H

_ Nếu VS là một biểu thức kí tự hoặc String

+ Write ( FileVar, VS : n ) ; cho ra giá trị của VS với n chỗ được căn lề bên phải. Nếu n < độ dài của String thì máy sẽ cắt bớt các chữ cuối của String đi.

Ví dụ :

Write ( FileVar, ‘Hello’ : 1 ) ; cho ra H

Write ( FileVar, ‘Hello’ : 3 ) ; cho ra Hel

Ví dụ tổng hợp :

Var

Ketqua : Text ;

A : Integer ;

B : Real ;

C : String [ 20 ] ;

D : Boolean ;

BEGIN

A : = 34 ;

B : = 3.14 ;

C : = ‘ END. ‘ ;

D := True ;

Assign ( Ketqua,’ chúng tôi ‘ ) ;

Rewrite ( Ketqua ) ;

Write ( Ketqua,’ Ket qua la : ‘ ) ;

Writeln ( Ketqua, A : 10, B : 10 : 4, C ) ;

Writeln ( ‘ Dong 2 ‘ : 10, D ) ;

Close ( Ketqua ) ;

END.

Kết quả hiện ra trong file Ketqua.txt :

Mặc dù A là một số nguyên nhưng thủ tục Write sẽ tự động chuyển sang dạng kí tự tức là dạng đọc được. Máy sẽ dành cho A 10 chỗ, vì A chỉ có 2 chữ số nên 8 chỗ còn lại đều là khoảnh trắng. Tương tự B được viết ra trong khuôn khổ 10 chỗ với 4 chỗ dành cho phần thập phân. Còn D là biến Boolean nên máy sẽ tự động in ra các từ ‘TRUE’ hoặc ‘FALSE’ tương ứng.

B) ĐỌC DỮ LIỆU TỪ TỆP VĂN BẢN:

Chúng ta có thể đọc không những các kí tự từ tệp văn bản mà còn có thể đọc lại các số nguyên, các số thực, Bolean từ tệp văn bản thông qua thủ tục :

Read ( FileVar, Var1, Var2,… VarN ) ;

Readln ( FileVAr, Var1, Var2,… VarN ) ;

Readln ( FileVar ) ;

Trong đó Var1, Var2,… VarN là các biến thuộc kiểu Char, String, Integer, Real, Boolean và muốn đọc cho đúng thì trong tệp văn bản các kí tự tương ứng từ vị trí đọc (vị trí cửa sổ) cũng phải diễn tả đúng các kiểu dữ liệu cần đọc trên.

Thủ tục Readln (FileVar, Var1, Var2,… VarN); sẽ đưa cửa sổ tệp sang đầu dòng tiếp theo sau khi đã lần lượt đọc các biến tương ứng.

Thủ tục Readln (FileVar) sẽ đưa cửa sổ tệp sang đầu dòng đầu tiên mà không đọc gì cả.

Hàm chuẩn kiểu Boolean EOLN( F ) sẽ phát hiện ra dấu hết dòng EOLN(End Of Line) của tệp F, tránh sai sót khi đọc quá dòng. Khi EOF = True thì EOLN cũng bằng True.

Việc đọc văn bản có thể chia làm hai loại :

+ Xử lý văn bản, các kí tự.

+ Đọc dữ liệu số nguyên, số thực từ tệp văn bản.

Ví dụ về xử lý văn bản :

Hãy lập một chương trình đếm số chữ trong một tệp văn bản F.

Program DEM_CHU ;

Var

F : Text ;

Ch : Char ;

I : Integer ;

FileName : String [ 30 ] ;

BEGIN

Write ( ‘ Ten tep : ‘ ) ; Readln ( FileName ) ;

Assign ( F, FileName ) ;

Reset ( F ) ;

I : = 0 ; (* I : Biến đếm *)

Begin

While Not Eoln ( F ) Do

Begin

Read ( F, Ch ) ;

I := I +1 ;

End ;

Readln ( F ) ;

End ;

Writeln (‘ So chu la : ‘, I ) ;

Close ( F ) ;

END.

* Khi đọc dữ liệu số nguyên, số thực từ tệp văn bản, thủ tục Read và Readln sẽ tự động biến đổi một xâu kí tự thích hợp trong tệp văn bản sang các số nguyên và số thực. Dấu cách được xem là dấu ngăn cách giữa các số.

Ví dụ: với I là số nguyên và J là số thực thì để đọc giá trị của I, J từ tệp F, ta dùng lệnh:

Read ( F, I, J ) ;

* Thủ tục Seek, hàm FileSize, FilePos không áp dụng cho tệp văn bản vì Text được tính theo đơn vị là dòng (kí tự) với độ dài dòng thay đổi, chúng ta không thể tính toán vị trí đặt con trỏ. Tuy nhiên, Turbo Pascal có hai hàm xử lý Text :

SeekEoln ( FileVar ) :

Hàm kiểu Boolean, tương tự như hàm Eoln song trước khi thử Eoln nó nhảy qua các dấu cách Space và Tab.

SeekEof ( FileVar ) :

Hàm kiểu Boolean, tương tự như hàm Eof song trước khi thử Eof nó nhảy qua các dấu cách Space, Tab và các dấu cách dòng.

Như vậy thủ tục Read và Readln đối với tệp văn bản có thể đọc được nhiều kiểu biến khác nhau ghi trong tệp văn bản ( Integer, Real, Boolean, Char, String ).

Ví dụ ứng dụng :

Giả sử rằng chúng ta cần lưu trữ và xử lý các tham số là nhiệt độ (số nguyên), áp suất (số thực), độ ẩm (số nguyên) của nhiều ngày trong tháng (cần ghi rõ cả ngày). Sau đó các dữ liệu này được xử lý bằng một chương trình độc lập khác. Bạn có thể tạo ra một tệp văn bản chứa các dữ liệu với các quy định như sau :

_ Dòng 1 chứa tên

_ Dòng 2 chứa đường gạch nét cho đẹp và rõ ràng.

_ Từ dòng 3 trở đi cho hết tệp : chứa dữ liệu với thứ tự : ngày của tháng, nhiệt độ, áp suất, độ ẩm.

Chúng ta có thể tổ chức dữ liệu thành tệp các Record như sau :

Type

Du_lieu = Record

Ngay : byte;

Nhietdo : Integer ;

ApSuat : Real ;

DoAm : Integer ;

End ;

Var

F : File Of Du_lieu ;

Nhược điểm của phương pháp cất dữ liệu dưới dạng văn bản là số ô nhớ chiếm nhiều hơn. Ví dụ khi NhietDo là 1656, nếu dùng mã Integer thì luôn luôn mất 2 byte, nếu dùng mã kí tự thì mất 4 byte chứa các kí tự ‘1’ ‘6’ ‘5’ ‘6’. Song nhược điểm này chỉ là phụ. Tuy nhiên chúng ta nên dùng tệp văn bản để xử lý. Ưu điểm của việc dùng tệp văn bản chứa dữ liệu là ta có thể dùng các chương trình soạn thảo văn bản ( các Editor như Editor của Turbo Pascal ) và sau đó có thể xem bằng mắt, sửa, cập nhật các dữ liệu một cách dễ dàng. Chắc bạn sẽ thắc mắc thêm : tại sao không đưa dữ liệu vào qua bàn phím lúc chạy chương trình ? Nếu làm như vậy bạn sẽ không mất chỗ trên đĩa từ song có hai nhược điểm lớn sau : nếu số liệu gõ vào sai thì bạn không sửa lại được nữa và nếu chương trình có sai sót nào đó thì bạn sẽ phải sửa chương trình và cho chạy lại chương trình với việc nhập dữ liệu mới ( qua bàn phím ). Điều này thực sự mất rất nhiều thời gian nếu số liệu có nhiều.

Sau khi quy định cách viết văn bản chứa dữ liệu, chúng ta phải tuân thủ quy định về dòng để đọc lại dữ liệu khi cần xử lý. Các dữ liệu trong một dòng cách nhau bằng dấu cách (Space) với số lượng khônh hạn chế, chủ yếu là do cách trình bày. Giả sử tệp văn bản có tên là chúng tôi được tạo ra với nội dung như sau :

Dòng 1 THOI TIET THANG 6 NAM 2002

Dòng 2 ……………………………………………….

Dòng 3 1 30 298.5 45

Dòng 4 2 35 100.8 24

…………. ……………………………………………….

Sau khi xử lý số liệu, chúng ta có thể thông báo số ngày (tương ứng với số dòng chứa số liệu).

Program DOC_DU_LIEU ;

Var

F : Text ;

NhietDo, DoAm : Integer ;

Ngay : Byte ;

ApSuat : Real ;

SoNgay : Byte ;

BEGIN

Assign ( F, ‘ chúng tôi ‘ ) ;

Reset ( F ) ;

Readln ( F ) ; (* nhảy qua dòng 2 *)

SoNgay := 0 ;

While Not SeekEoln ( F ) Do

Begin

(* Đọc số liệu từng ngày một *)

Readln ( F, Ngay, NhietDo, ApSuat, DoAm ) ;

SoNgay := SoNgay + 1 ;

(* Xử lý dữ liệu tùy theo yêu cầu của bài toán *)

End ;

Writeln ( ‘ Ket qua xu ly cua ‘, SoNgay,’ ngay la : ‘ ) ;

Close ( F ) ;

END.

Var

VanBan : Array [1.. 700] Of String [80] ;

F :Text ;

I, SoDong : Integer ;

Name : String [30] ;

BEGIN

(* Đọc tệp văn bản vào mảng *)

Name := ‘Vidu.txt’ ;

Assign ( F, Name ) ;

Reset ( F ) ;

I := 1 ;

While Not Eof ( F ) Do

Begin

Readln ( F, VanBan [ I ] ) ; (* Đọc một dòng vào một chuỗi *)

I := I + 1 ;

End;

SoDong := I – 1 ;

Close ( F ) ;

(* Xử lý văn bản trên mảng VanBan *)

(* Cất lại vào tệp nếu muốn. Xin giành cho bạn đọc *)

END.

·Lưu ý : số dòng và số chữ của một dòng trong khai báo VanBan ở trên bị hạn chế vì trên máy tính, bộ nhớ cho khai báo các biến bị chặn trên là 64 KB. Muốn mở rộng, bạn cầ tham khảo biến động và con trỏ ở chương sau.

Việc xử lý các dữ liệu ít khi làm thẳng với tệp (không chỉ là tệp văn bản mà cả với tệp kiểu khác nữa) do tốc độ ghi / đọc của đĩa từ chậm hơn tốc độ ghi/ đọc của bộ nhớ trong. Người lập trình nên tổ chức các cấu trúc dữ liệu khác ( mảng, tập… ) là các kiểu dữ liệu nằm trong bộ nhớ trong của máy.

Nhiều vấn đề còn nảy sinh ra khi làm việc với tệp như: khi dùng Reset( F ) liệu tệp F đã tồm tại chưa, khi ghi vào tệp F thì liệu trên đĩa có còn đủ chỗ chứa thêm dữ liệu mới của F hay không ? Turbo Pascal cung cấp lời hướng dẫn ( directive ) cho chương trình dịch để đóng/mơû ( bật/tắt ) việc kiểm tra lỗi sai trong quá trình vào ra tệp :

{$I+} mở việc kiểm tra. Khi gặp lỗi vào/ra chương trình sẽ báo lỗi và dừng lại. Đây là chế độ ngầm định (by default), nghĩa là chương trình dịch luôn luôn thực hiện chế độ nếu không được báo rõ.

Program OpenInputFile ;

Var

OK : Boolean ;

FileName : String ;

F : Text ;

BEGIN

Repeat

Write ( ‘ Ten tep : ‘ ) ;

Readln ( FileName ) ;

Assign ( F, FileName ) ;

{$I-} (* chuyển việc kiểm tra vào / ra cho người dùng *)

Reset ( F ) ;

OK := IOResult = 0 ;

{$I+} (* Sau khi dùng IOResult ta có thể chuyển thành $I+ *)

If not OK Then Write (‘ Khong mo tep voi ten nay duoc ‘) ;

Until OK ;

END.

Toàn bộ các lỗi sai khi vào ra được liệt kê trong phần phụ lục dưới dạng một thủ tục IOCheck. Mặt khác bạn cũng cần lưu ý {$I-} và IOResult được dùng không chỉ với thủ tục Reset mà còn với các thủ tục khác như Erase, Rename, Write, Read…

Đỗ Trung Thành @ 10:37 13/09/2009 Số lượt xem: 3390

Hướng Dẫn Xoay Bảng Dữ Liệu Từ Hàng Sang Cột Trong Excel / 2023

Bạn đang gặp bảng tính có chiều ngang dài và muốn chuyển thành bảng tính có chiều dọc để theo dõi dễ hơn. Vậy, mình sẽ chia sẻ với bạn cách để chuyển dữ liệu bảng tính có chiều ngang thành dọc hoặc ngược lại trong Excel.

Bằng cách sử dụng hàm TRANPOSE trong Excel, thì việc chuyển chiều cho bảng tính sẽ rất dễ dàng. Và trong bài viết này sẽ chia sẻ với bạn cách TRANPOSE dễ hơn nữa hay kết hợp sử dụng cả 2 TRANPOSE hay kết hợp TRANPOSE với điều kiện IF để bắt dữ liệu.

Hàm TRANPOSE

📝 Hàm TRANPOSE là hàm được dùng để chuyển cột thành hàng tương ứng. Tức là chuyển từ bảng dữ liệu có chiều ngang thành chiều dọc hoặc ngược lại.

Cú pháp:

=TRANSPOSE(

array

)

Code language:

PHP

(

php

)

Trong đó:

array: là một mảng (Range) mà bạn muốn chuyển chiều của bảng tính. Tại đó, hàng đầu tiên của mảng gốc sẽ là cột đầu tiên của bảng mới, tương tự như vậy cho đến hết mảng.

📝 Để hàm TRANPOSE thực hiện đúng, sau khi nhập lệnh bạn cần sử dụng tổ hợp phím [Ctrl + Shift + Enter] để Excel hiểu rằng bạn muốn kết quả trả về dạng mảng.

Sử dụng hàm TRANPOSE trong Excel

Hàm TRANPOSE cũng đơn giản để sử dụng nhưng bạn cần xác định chính xác số hàng và cột của bảng dữ liệu gốc.

✔ Như vậy, bảng ở trên chúng ta xác định được có 6 hàng và 7 cột.

Tiếp theo, mục đích của ta là chuyển bảng Excel ngang thành dọc. Vì vậy, bạn sẽ cần xác định vị trí cần tạo 1 bảng mới. Ở đây, mình sẽ tạo bảng ở Sheet khác và bắt đầu từ ô A1.

Như đã xác định cột và hàng ở bảng gốc, chúng ta có là 6 hàng và 7 cột. Nên ở bảng mới, bạn cần chọn trước bảng có 7 hàng và 6 cột.

Sau khi nhập tham số array, bạn hãy nhấn tổ hợp phím [Ctrl + Shift + Enter] để xem kết quả trả về.

Kết quả: Hàm TRANPOSE đã chuyển số hàng từ bảng gốc thành cột ở bảng mới. Và lặp lại cho đến hết bảng dữ liệu được chọn.

🟢 Nhìn vào cách thực hiện trên, chắc bạn rối khi cần xác định rõ số hàng và số cột ở cả bảng gốc và bảng cần tạo. Vậy có cách nào để sử dụng hàm TRANPOSE đơn giản hơn không? Cách tiếp theo sẽ giúp bạn!

Cách sử dụng TRANPOSE trong Paste Special

Đầu tiên, bạn hãy sao chép dữ liệu bảng gốc. Sau đó, đặt chuột tại vị trí ô đầu tiên bạn muốn tạo bảng mới.

Bạn hãy chuột phải và chọn Paste Special…

Trong tùy chọn Paste Special, bạn cần chọn vào Tranpose và OK.

Kết quả thực hiện sau khi thực hiện TRANPOSE bằng Paste Special.

Bạn sẽ thấy, TRANPOSE bằng Spaste Special thì bảng mới được tạo sẽ có luôn định dạng từ bảng gốc mà bạn không cần phải thực hiện lại định dạng.

Nếu bạn để ý, 2 cách TRANPOSE mình đã trình bày ở trên có một điểm khác nhau.

TRANPOSE bằng hàmTRANPOSE bằng Paste SpecialKhi thay đổi bảng chính thì dữ liệu bảng được chuyển đổi sẽ tự động cập nhật theo.Dữ liệu bảng được chuyển đổi sẽ giữ nguyên. Không cập nhật lại nếu bảng gốc thay đổi.

Nên vậy, cách mình hay áp dụng khi sử dụng TRANPOSE là cả 2 theo thứ tự sau:

Sử dụng TRANPOSE bằng Paste Special để Excel tự động lấy số hàng, cột và định dạng.

Xóa dữ liệu bảng vừa tạo ở trên và thực hiện hàm TRANPOSE thủ công.

Ngoài ra, trong TRANPOSE bạn có thể sử dụng thêm một số hàm như IF để bắt điêu kiện dữ liệu mong muốn.

Cách sử dụng TRANPOSE và IF trong Excel

📒 Trên là một ví dụ để mô tả về cách sử dụng TRANPOSE với IF. Bạn hãy ứng biến để phù hợp với dữ liệu của bạn.

Kết luận

Như vậy, bạn đã tìm hiểu qua cách để chuyển đổi bảng dữ liệu có chiều ngang thành dọc hoặc ngược lại rồi.

Có 3 cách là sử dụng hàm TRANPOSE, tùy chọn TRANPOSE bằng Paste Special hoặc kết hợp sử dụng cả 2. Ngoài ra, nếu bạn muốn loại bỏ giá trị khi TRANPOSE, hãy thêm vào các điều kiện IF để bắt dữ liệu.

Hy vọng, bài viết này hữu ích với bạn!

Cập nhật thông tin chi tiết về Các Kiểu Dữ Liệu Cơ Bản Trong Bảng Microsoft Access / 2023 trên website Bac.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!