MDAC 2.5 SDK - OLE DB Programmer's Reference
Chapter 24: Multidimensional Expressions
The FORMAT_STRING property contains a format string that was used to generate the FORMATTED_VALUE property. The contents of FORMAT_STRING vary, depending on the data type of the value.
A format expression for strings can have one section or two sections separated by a semicolon (;).
If you use | The result is |
One section only | The format applies to all string data. |
Two sections | The first section applies to string data, the second to null values and zero-length strings (""). |
The characters described in the following table can appear in the format string for character strings.
Character | Description |
@ | Character placeholder. Displays a character or a space. If the string has a character in the position where the at symbol (@) appears in the format string, it displays the character. Otherwise, it displays a space in that position. Placeholders are filled from right to left unless there is an exclamation point character (!) in the format string. |
& | Character placeholder. Displays a character or nothing. If the string has a character in the position where the ampersand (&) appears, it displays the character. Otherwise, it displays nothing. Placeholders are filled from right to left unless there is an exclamation point character (!) in the format string. |
< | Forces lowercase. Displays all characters in lowercase format. |
> | Forces uppercase. Displays all characters in uppercase format. |
! | Forces left-to-right fill of placeholders. (The default is to fill placeholders from right to left.) |
A user-defined format expression for numbers can have anywhere from one to four sections separated by semicolons. If the format argument contains one of the named numeric formats, only one section is allowed.
If you use | The result is |
One section only | The format expression applies to all values. |
Two sections | The first section applies to positive values and zeros, the second to negative values. |
Three sections | The first section applies to positive values, the second to negative values, and the third to zeros. |
Four sections | The first section applies to positive values, the second to negative values, the third to zeros, and the fourth to null values. |
The following example has two sections: The first section defines the format for positive values and zeros, and the second section defines the format for negative values.
"$#,##0;($#,##0)"
If you include semicolons with nothing between them, the missing section is printed using the format of the positive value. For example, the following format displays positive and negative values using the format in the first section and displays "Zero" if the value is zero:
"$#,##0;;\Z\e\r\o"
The following table identifies the characters that can appear in the format string for number formats.
Character | Description |
None | Displays the number with no formatting. |
0 | Digit placeholder. Displays a digit or a zero.
If the expression has a digit in the position where the 0 appears in the format string, it displays the digit. Otherwise, it displays a zero in that position. If the number has fewer digits than there are zeros (on either side of the decimal) in the format expression, it displays leading or trailing zeros. If the number has more digits to the right of the decimal separator than there are zeros to the right of the decimal separator in the format expression, it rounds the number to as many decimal places as there are zeros. If the number has more digits to the left of the decimal separator than there are zeros to the left of the decimal separator in the format expression, it displays the extra digits without modification. |
# | Digit placeholder. Displays a digit or nothing. If the expression has a digit in the position where the # appears in the format string, it displays the digit. Otherwise, it displays nothing in that position. This symbol works like the 0 digit placeholder except that leading and trailing zeros are not displayed if the number has the same or fewer digits than there are # characters on either side of the decimal separator in the format expression. |
. | Decimal placeholder. (In some locales, a comma is used as the decimal separator.) The decimal placeholder determines how many digits are displayed to the left and right of the decimal separator. If the format expression contains only number signs (#) to the left of this symbol, numbers smaller than 1 begin with a decimal separator. To display a leading zero displayed with fractional numbers, use 0 as the first digit placeholder to the left of the decimal separator. The actual character used as a decimal placeholder in the formatted output depends on the number format recognized by your system. |
% | Percentage placeholder. The expression is multiplied by 100. The percent character (%) is inserted in the position where it appears in the format string. |
, | Thousand separator. (In some locales, a period is used as a thousand separator.) The thousand separator separates thousands from hundreds within a number that has four or more places to the left of the decimal separator. Standard use of the thousand separator is specified if the format contains a thousand separator surrounded by digit placeholders (0 or #). Two adjacent thousand separators, or a thousand separator immediately to the left of the decimal separator (whether or not a decimal is specified), means "scale the number by dividing it by 1000, rounding as needed." For example, you can use the format string "##0,," to represent 100 million as 100. Numbers smaller than 1 million are displayed as 0. Two adjacent thousand separators in any position other than immediately to the left of the decimal separator are treated simply as specifying the use of a thousand separator. The actual character used as the thousand separator in the formatted output depends on the number format recognized by your system. |
: | Time separator. (In some locales, other characters may be used to represent the time separator.) The time separator separates hours, minutes, and seconds when time values are formatted. The actual character used as the time separator in formatted output is determined by your system settings. |
/ | Date separator. (In some locales, other characters may be used to represent the date separator.) The date separator separates the day, month, and year when date values are formatted. The actual character used as the date separator in formatted output is determined by your system settings. |
E- E+ e- e+ | Scientific format. If the format expression contains at least one digit placeholder (0 or #) to the right of E-, E+, e-, or e+, the number is displayed in scientific format and E or e is inserted between the number and its exponent. The number of digit placeholders to the right determines the number of digits in the exponent. Use E- or e- to place a minus sign next to negative exponents. Use E+ or e+ to place a minus sign next to negative exponents and a plus sign next to positive exponents. |
- + $ ( ) | Displays a literal character. To display a character other than one of those listed, precede it with a backslash (\) or enclose it in double quotation marks (" "). |
\ | Displays the next character in the format string. To display a character that has special meaning as a literal character, precede it with a backslash (\). The backslash itself is not displayed. Using a backslash is the same as enclosing the next character in double quotation marks. To display a backslash, use two backslashes (\\). Examples of characters that cannot be displayed as literal characters are the date-formatting and time-formatting characters (a, c, d, h, m, n, p, q, s, t, w, y, /, and :), the numeric-formatting characters (#, 0, %, E, e, comma, and period), and the string-formatting characters (@, &, <, >, and !). |
"ABC" | Displays the string inside the double quotation marks (" "). To include a string in format from within code, use Chr(34) to enclose the text. (The character code for a double quotation mark is 34.) |
The following table identifies characters that can appear in the format string for date/time formats.
Character | Description |
: | Time separator. (In some locales, other characters may be used to represent the time separator.) The time separator separates hours, minutes, and seconds when time values are formatted. The actual character used as the time separator in formatted output is determined by your system settings. |
/ | Date separator. (In some locales, other characters may be used to represent the date separator.) The date separator separates the day, month, and year when date values are formatted. The actual character used as the date separator in formatted output is determined by your system settings. |
C | Displays the date as ddddd and displays the time as ttttt, in that order. Displays only date information if there is no fractional part to the date serial number. Displays only time information if there is no integer portion. |
d | Displays the day as a number without a leading zero (1–31). |
dd | Displays the day as a number with a leading zero (01–31). |
ddd | Displays the day as an abbreviation (Sun–Sat). |
dddd | Displays the day as a full name (Sunday–Saturday). |
ddddd | Displays the date as a complete date (including day, month, and year), formatted according to your system's short date format setting. For Microsoft® Windows®, the default short date format is m/d/yy. |
dddddd | Displays a date serial number as a complete date (including day, month, and year), formatted according to the long date setting recognized by your system. For Microsoft Windows, the default long date format is mmmm dd, yyyy. |
w | Displays the day of the week as a number (1 for Sunday through 7 for Saturday). |
ww | Displays the week of the year as a number (1–54). |
m | Displays the month as a number without a leading zero (1–12). If m immediately follows h or hh, the minute rather than the month is displayed. |
mm | Displays the month as a number with a leading zero (01–12). If m immediately follows h or hh, the minute rather than the month is displayed. |
mmm | Displays the month as an abbreviation (Jan–Dec). |
mmmm | Displays the month as a full month name (January–December). |
q | Displays the quarter of the year as a number (1–4). |
y | Displays the day of the year as a number (1–366). |
yy | Displays the year as a two-digit number (00–99). |
yyyy | Displays the year as a four-digit number (100–9999). |
h | Displays the hour as a number without leading zeros (0–23). |
hh | Displays the hour as a number with leading zeros (00–23). |
n | Displays the minute as a number without leading zeros (0–59). |
nn | Displays the minute as a number with leading zeros (00–59). |
s | Displays the second as a number without leading zeros (0–59). |
ss | Displays the second as a number with leading zeros (00–59). |
t t t t t | Displays a time as a complete time (including hour, minute, and second), formatted using the time separator defined by the time format recognized by your system. A leading zero is displayed if the leading zero option is selected and the time is earlier than 10:00 (for example 09:59), in either the A.M. or the P.M. cycle. For Microsoft Windows, the default time format is h:mm:ss. |
AM/PM | Uses the 12-hour clock. Displays an uppercase with any hour from midnight until noon; displays an uppercase AMPM with any hour from noon until midnight. |
am/pm | Uses the 12-hour clock. Displays a lowercase am with any hour from midnight until noon; displays a lowercase pm with any hour from noon until midnight. |
A/P | Uses the 12-hour clock. Displays an uppercase A with any hour from midnight until noon; displays an uppercase P with any hour from noon until midnight. |
a/p | Uses the 12-hour clock. Displays a lowercase a with any hour from midnight until noon; displays a lowercase p with any hour from noon until midnight. |
AMPM | Uses the 12-hour clock. Displays the AM string literal as defined by your system with any hour from midnight until noon; displays the PM string literal as defined by your system with any hour from noon until midnight. AMPM can be either uppercase or lowercase, but the case of the string displayed matches the string as defined by your system settings. For Microsoft Windows, the default format is AM/PM. |