create pdf thumbnail image c# : Changing font in pdf form SDK software service wpf windows html dnn AccessTutorial12-part958

Fig 6.2A  Visual Basic declarations 
Procedures = Subroutines and Functions
proc a, b, , d
‘Parenthesis-free notation
Call show(a, b, , d)
‘Subroutines only
res = fnc(a, b, , Me) ‘Functions only
Sub show(a, b As t, Optional c, d)
If IsMissing(c) Then . . .
Exit Sub
‘Optional
. . .
End Sub
Function fnc(a, b As t, Optional c, dAs Object)_
As String
‘As String is optional
If IsMissing(c) Then . . .
fnc= result . . .
Exit Function
‘Exit optional
. . .
End Function
Declarations
Dim B, C As Byte
B is Variant, C is 0..255
Boolean
True (<>0, False (=0)
Integer
16 bit, -32,786 .. 32,767
Long
32 bit integer, -2.14E9 .. 2.14E9
Currency 64 bit integer / 10,000
Single
32 bit, -3.4E38 .. 3.4E38, 6 digits
Double
64 bit, -1.8E308 .. 1.8E308, 14 digits
Date
Double, days since 30. Dec 18990:00
Object
Reference to any object
Form
Reference to any Form
Variant
Any of the types or Null, Empty, 
Error, Nothing -plus a type tag.
All database fieldsare Variant
String
Variable length, max 2E9 characters
String * 50
Fixed length, space filled
Initial values
String = “”, Boolean=False
Number, Date = 0 
Database field = Null
Object = Nothing
Variant = Empty
Dim c(5, 1 To 6) As t Same as c(0..5, 1..6)
Dim d( ) As Single
Dynamic array declaration
ReDim d(5, 1 To 6)
Statement
Index range (re)defined, data lost
ReDim Preserve d(5, 1 To 8)
Last index range redefined, data preserved
Erase d
Releases memory for dynamic array
Type Customer
‘Simple modules only
custID As Long
custName As String * 50
custAddress As String
End Type
Dim custTable(20) As Customer
EnumerationType
Public EnumRoomState ' Visible to all modules
rmBooked= 1
rmOccupied= 2
rmRepair= 3
End Enum
Public states(12) As RoomState
. . . states(i) = rmRepair
function call as shown in Figure 6.2A, while you have 
to call a subroutine with the word Call. You may call 
either of them with the parenthesis-free notation as 
shown on the figure. It means exactly the same, but 
you cannot store the result in case you call a function 
this way. 
The figure also shows how subroutines and functions 
are declared. Note how you specify that a specific type 
of parameter is required, and how you specify that a 
parameter may be omitted (optional). The procedure 
can check whether an optional parameter is present 
with the operator IsMissing.  
Note how you can use Me as a parameter when you call 
a procedure. Inside the procedure, the parameter must 
be specified as Object, not as Form as you might 
expect.  
When control passes to the end of the procedure, it 
returns to the point it was called. The program can also 
exit from the procedure with Exit Sub or Exit Function. 
Enumeration type - constant declaration 
You can define enumeration types as shown on Figure 
6.2A. A variable of type RoomState can have the value 
rmBookedrmOccupied or rmRepair.  
VBA doesn't restrict the value of the variables to 
rmBooked, etc. The Enum declaration is primarily a 
structured way of defining the constants rmBooked, etc. 
See section 6.3 for other ways of defining constants. 
6. Visual Basic reference 
121
Changing font in pdf form - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
create a pdf form; changing font size in pdf form field
Changing font in pdf form - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
change font size in pdf form; change font size pdf form
Module and scope 
You create simple modules with the VBA editor (see 
section 5.7.3). Declare module variables at the top of 
the module, procedures below (Figure 6.2B). The 
module variables live as long as the application runs. If 
they are declared with Public instead of Dim, they are 
accessible from other modules and from Forms. 
You create class modules the same way. Objects of the 
class are created dynamically (see section 5.7.3). You 
can address Public variables and procedures in an 
object through an object reference. 
Procedures can declare variables of their own. If de-
clared with Dim, the variable is created at the time the 
procedure is called and deleted when it returns. How-
ever, if it is declared with Static, it survives from one 
call to the next. Variables declared inside a procedure 
are never accessible from outside the procedure.
6.3 Constants and addresses 
Constants 
Figure 6.3 shows the various ways to write constant 
values in VBA.  
Numeric constants can be written in the usual decimal 
way, in octal (preceded by &o) or in hexadecimal (pre-
ceded by &h). Note the scientific notation  
-4.9E-20 meaning -4.9 * 10
-20 
Color values consist of 8 bits for the amount of blue, 
followed by 8 bits for green and 8 bits for red. This is 
conveniently written in hex, e.g. &h09A0FF. Note that 
colors on the web (HTML) are similar, but use the 
opposite sequence, RGB. 
String constants are enclosed in quotes. There is no 
way to write special characters inside the string con-
stant. You have to generate a string with a single spe-
cial character using Chr(x), where x is the Ascii value 
of the character. As an example, Chr(10) is a line feed. 
Next you concatenate these string parts by means of the 
&-operator. A quote inside a string constant is written 
as two quotes. When you have to compute SQL-state-
ments in VBA, these statements will often include 
string constants in quotes. Fortunately, SQL accepts 
double quotes as well as single quotes. Generate the 
single quotes-version with VBA to avoid conflicts with 
VBA double quotes. 
Date/time constants are enclosed in #  #. The date 
format between # and # is always US format mm/dd/yy 
or mm/dd/yyyy. Time may be part of the date/time 
constant as shown. 
Null and Empty can be used for testing, for instance 
If x = Empty Then . . . 
If IsNull(x) Then . . . 
If x = Null Then ' Always gives Null, never True 
Notice that comparing with Null always gives Null. 
You have to use IsNull to test whether something is 
Null. See section 6.4 for more on Null. 
You can assign Null to a variant variable. You cannot 
assign an empty string to a record field in a database, 
you have to assign Null: 
rs . f = Null  ' Okay, works as an empty string 
rs . f = ""    ' Empty string not allowed 
rs . f = "   "  ' Okay, spaces as a text 
Nothing. The value Nothing can be used for testing 
with the Is-operator and for assigning to a reference 
variable with the Set statement, for instance 
If x = Nothing Then . . . 
Set x = Nothing 
Constant declaration. You can declare constants, i.e. 
give them a name. In the example, we have given the 
constant 10 the name max and the constant 24th March 
2002 the name start. VBA has many predefined con-
stants, for instance vbKeyA to denote the Ascii value 
of the letter A and vbYes to denote the result of 
MsgBox when the user has chosen Yes. 
Define constants for your project in a simple module, 
e.g. basCommon
Addressing variables and objects 
Figure 6.3 also shows the various ways to address a 
variable or an object. The first examples address the 
members of the Forms collection in different ways. The 
first version uses an integer index as a reference, the 
second a computed string as the name of the Form, the 
third a short-hand notation with a fixed string as the 
name of the form. 
The next examples address Form properties and fields 
from code in the Form itself. The property Name is 
addressed with the dot-operator, while the name field is 
addressed with the bang-operator. In this case there is a 
name conflict between the two meanings of name. If 
there was no conflict, the dot could also be used to 
address the field. A property in a subform is addressed 
with the name of the subform control followed by 
Form to get a reference to the open subform object. 
From a subform, the main form can be addressed with 
Me.Parent 
Note that Me and Parent are of type Object, not type 
Form as one might expect. 
In most cases, you can omit Me. The exception is when 
a built-in function has the same name as the property or 
control.  
122 
6. Visual Basic reference 
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
file merge function will put the two target PDF together and save as new PDF, without changing the previous RasterEdge.Imaging.Font.dll. RasterEdge.XDoc.PDF.dll.
android edit pdf forms; allow users to save pdf form
C# PDF Password Library: add, remove, edit PDF file password in C#
to perform PDF file password adding, deleting and changing in Visual RasterEdge.Imaging. Font.dll. passwordSetting.IsAssemble = true; // Add password to PDF file
adding images to pdf forms; pdf add signature field
Fig 6.2B  Module and Scope 
Module and Scope
Dim a
‘Visible in this module only
Public b
‘Visible to all modules
Private Sub show(p) ‘Visible in this module only
Dim c
‘Visible in this sub only
Static d
‘Visible in this sub only, 
‘but survives calls
If . . . Then  . . .
End Sub
Public Sub show(p) ‘Visible to all modules
Dim c
‘Visible in this sub only
. . .
End Sub
Fig 6.3  Visual Basic constants and addresses 
Constants
23, -23, 0, -4.9E-20 Decimal numbers
&h09A0FF, &o177
Hex and Octal, color: bgr
“Letter to:”
Strings
Chr(65), Chr(vbKeyA)The text “A”
“John”& Chr(10) & “Doe” Two-line text
“Don’t say “”No””“
Don’t say “no”
“select * from g where a=‘simpson’;”
Single quotes are suited for SQL
True, False
Booleans
Date/time
#10/24/02#
24th Oct 2002
#10/24/02 14:15:00# 24th Oct 02 at 14:15
#10/24/02 2:15 pm# 24th Oct 02 at 14:15
Null, Empty
Special values
Nothing
Object reference to nothing
Constant declaration
Const max=10, start=#3/24/2#
Addressing
Forms(i)
Element in collection
Forms(“frmCst”& i)
Forms!frmCst2
Bang-operator
Me.Name, Me!name
Propertyand Controlin
thisObject(e.g. form)
Me.subLst.Form.name Property in subform
Me.Parent.txtName
Controlin mainform
basCommon.simDate
Var in foreign module
c(row, col)
Indexing an array
custTable(i).custID
Field in array of records
With Me.Recordset Apply before dot and bang
.addr = .addr & zip
!name = Null
!phone = “ “
.MoveNext
. . .
End With
A public variable in a foreign, simple module can be 
addressed as moduleName.variableName as shown. 
Array elements are addressed with indexes in paren-
thesis. Arrays of records are addressed with index and 
the dot-operator to get a field in element i
With-End. There is a short-hand notation for address-
ing an object. The With-End statement specifies a par-
tial address, for instance an object. Inside the With-
End, all dot and bang-operators are automatically pre-
fixed with this partial address. 
6. Visual Basic reference 
123
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Supports tiff compression selection. Supports for changing image size. RasterEdge. Imaging.Drawing.dll. RasterEdge.Imaging.Font.dll. RasterEdge.XDoc.PDF.dll.
adding image to pdf form; create a fillable pdf form in word
C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
Enable batch changing PDF page orientation without other PDF reader control. RasterEdge.Imaging.Drawing.dll. RasterEdge.Imaging.Font.dll. RasterEdge.XDoc.PDF.
convert word document to editable pdf form; add text fields to pdf
6.4 Operators and conversion functions 
Operators 
Figure 6.4A shows the operators available in VBA. 
The operators are shown in decreasing precedence, 
meaning that high-precedence operators are computed 
before low-precedence operators. This is the rule that 
ensures that for instance 
a*b+c*d
is computed as 
(a*b) + (c*d)
rather than 
a* (b+c) *d
The top operators are the conventional mathematical 
operators. In general Visual Basic does a good job of 
converting the operands to the best possible data type 
before applying the operator. 
Null 
Null values need attention. Think of Null as Unknown. 
As a general rule, if one of the operands is Null, the 
result is Null too. Look at 
If x = Null Then . . .
X = Null will always give Null. This is not True and 
the statement after Then will never be executed. See 
section 4.5 for examples of handling Null in queries. 
There are a few exceptions to the general rule: 
Null and False is False.  
No matter what the unknown is, the result will be false. 
Null or True is True.  
No matter what the unknown is, the result will be true. 
The &-operator concatenates two string operands into 
one. If one or both operands are non-string, it converts 
them to strings before concatenation. This also applies 
to concatenating with Null, which in this case is con-
verted to an empty string. Note that & converts dates to 
the regional date format. To avoid this, use the Format 
function to explicitly convert to a specific string 
format. 
Other operators 
There are the usual comparison operators, equal, un-
equal, etc. They can compare numbers as well as texts. 
The Is-operator compares two object references to see 
whether they refer to the same object. It may also help 
checking whether an object reference is Nothing, i.e. 
refers to no object. 
The Partition operator translates a value into an 
interval of values, shown as a string. It takes four 
parameters: 
Value: 
An integer. 
Lower: 
The lowest value considered. 
Upper:  
The highest value considered. 
Int.length:  The range of values is divided into 
intervals of this length. 
As an example Partition(22, 0, 100, 10) = "20:29". The 
entire range 0:100 is divided into intervals of length 10. 
The first interval is 0:9, the next 10:19, etc. The value 
22 belongs to the interval 20:29. 
Between and In. Most VBA operators may be used in 
SQL too. However, Between and In may only be used  
in SQL:  
WHERE a BETWEEN 3 AND 9 
WHERE a IN (2, 3, 5, 7)
Finally, we have the logical operators. Usually they 
work on Boolean values, for instance 
If a Or b Then
But if a and b are integers, they work in parallel on all 
the bits of these integers. 
Like operator, wildcarding 
The Like operator can compare string patterns. It treats 
some characters in its right-hand operand in a special 
way. As an example, the character * means any 
sequence of characters. The expression 
s Like "sim*an"
will thus check whether s starts with the characters 
"sim" and ends with the characters "an" with any char-
acters in between.  
The character ? means any single character here. The 
expression 
s Like "b?n" 
will thus check whether s starts with b, ends with n, 
and has exactly one character in between.  
The character # means any digit here. The sequence 
[ad3] means either a, d, or 3 here. The sequence [a-d3] 
means either a letter between a and d here, or the digit 
3. We can even negate the rules: [!ad3] means neither 
a, d, or 3 here. The Like operator is also called the 
wildcard operator
124 
6. Visual Basic reference 
VB Imaging - VB ISSN Barcode Generating
our users can even create ISSN barcode on PDF, TIFF, Excel RasterEdge.Imaging.Font. dll. height, setting the barcode image rotation degree, changing the barcode
create a fillable pdf form from a word document; add attachment to pdf form
C# Image: Add Watermark to Images Within RasterEdge .NET Imaging
by setting the font style, changing the brush color 100; image.CreateWatermark(" watermark", font, brush, new & profession imaging controls, PDF document, image
can reader edit pdf forms; best way to make pdf forms
Fig 6.4A  Operators and conversion functions 
Operators, decreasing precedence
Nulls: A Null operand usually gives a Null result.
^
Exponentiation
-
Unary minus, 2*-3 = -6
*
Multiply, Result type is Integer, Double, etc.
/
Divide, Single or Double result
\
Integer divide, result truncated, 5\3 = 1 
Mod Modulus (remainder), 5 Mod 3 = 2
+ - Add and subtract
&
Concatenation, String result(localformat)
=  <>  <  >  <=  >=  Equal, unequal, less than, etc.
Is
Compare two object references, e.g.
If r Is Nothing
(Test for nil-reference)
Partition(22, 0, 100, 10)  = "20:29"
a Between3 and 9
Not in VBA, okay in SQL
a IN (2, 3, 5, 7)
Not in VBA, okay in SQL
Not Negation. Bit-wise negation for integers
And Logical And. Bit-wise And of integers
Or Logical Or. Bit-wise Or of integers
X
Exclusive Or. Bitwise on integers
Eqv Logical equivalence. Bitwise on integers
Imp Logical implication. Bitwise on integers
s Like “s?n” Wildcard compare. ? any char here. 
# any digit here. * any char sequence here. 
[a-k] any letter between a and k here.
Conversion to Integer, Double, Date . . .
Errors:“Invalid use of Null”for Null parameters
Overflow or type mismatch for bad parameters.
CByte(“37”)
=37. Overflow outside 0..255
CInt(“2.6”)
= 3
Round(2.6)
= 3.0000 (as Double)
Rounding down: See Math functions Int, Fix
CLng(“99456”) = 99456
CCur(1/3)
=0.3333 (always 4 decimals)
CSng(“-2.6e-2”) = -0.026
CDbl(“-2.6”)
= -2.6
CDbl(#12/31/1899#) = 1.0
CDate(“23-10-03”) = #10/23/2003# (as Double) 
Uses regional setting for input date
CDate(1)
= #12/31/1899# (as Double)
CStr(23)
= “23”. No preceding space.
Str(23)
= “23”. 
Preceding space for numbers >= 0
CStr(#10/23/2003#) = “23-10-03”
Converts to regional date format
CVar(X)
= X As Variant. X may be Null
Conversion to Integer, Double, Date, etc. 
There is a conversion function for most of the types. It 
converts an expression of another type to its own type. 
For instance, CInt(D) converts D to an integer - if pos-
sible - and returns the result as the value of the func-
tion. D might for instance be a string. If D is a decimal 
number, it is rounded to the nearest integer (up or 
down).  
The function Round(D) does exactly the same as 
CInt(D) but returns the integer as a Double. See Math 
Functions, section 6.5, for rounding down with Int and 
Fix. 
CDate(D) converts D to a date/time value (technically a 
Double number). Often D is a string, and CDate is 
quite liberal in its interpretation of the string. However, 
some dates are ambiguous. For instance the string 
"02/03/04" can be interpreted in many ways as a date. 
In these cases, CDate uses the regional setting for the 
date format. 
CStr( ) can convert a number to a string. It never puts a 
space (blank) in front of the digits. In contrast, Str( ) 
puts a space in front of numbers >= 0, a minus in front 
of negative numbers. Notice that both functions 
convert dates to the regional date format. To avoid this, 
use the Format function to convert to a specific date 
format. 
CVar(X) converts X to a variant type. It doesn't really 
change anything, but sets a type tag on the result it re-
turns.
6. Visual Basic reference 
125
VB Imaging - VB Codabar Generator
generator SDK also creates Codabar bar code on PDF, WORD, TIFF RasterEdge.Imaging. Font.dll. also customize barcode location on images by changing the horizontal
add form fields to pdf; change font size in fillable pdf form
VB.NET Word: VB.NET Code to Draw and Write Text and Graphics on
users are able to define text, like resizing, rotating, changing font style, etc dedicated to provide powerful & profession imaging controls, PDF document, tiff
change pdf to fillable form; add editable fields to pdf
Format function 
The Format function has two parameters: a value to be 
converted to a text, and the format of the result. The 
format is a string and its details are a complex affair. 
Basically each character in the format is either a 
placeholder that causes VBA to show part of the value, 
or it is a literal character that is shown as it is. As an 
example, # will show a digit from the value, while / is 
not a placeholder and will show up as a / in the result. 
If a placeholder character is to be shown as the charac-
ter itself, precede it with a backslash. As an example, \# 
will show a # in the result. 
There are separate placeholders for numbers, strings, 
and dates. Apparently, the first placeholder determines 
whether to show the value as a number, a string or 
date/time. From this point on, the format characters are 
interpreted according to the type to be shown.  
For numbers, the format string can contain from one to 
four sections separated by semicolons. The first section 
is used for positive numbers, the second for negative, 
the third for zeroes, and the fourth for Null values (no 
value). 
The details of the format strings and their effect are 
best studied through the examples on Figure 6.4B. 
Week number 
The week number for a date is shown with the ww 
placeholder. Since different regions of the globe have 
different rules for what is the first day in the week, the 
Format function needs a third parameter in this case. It 
is vbSunday (1) if Sunday is the first day of the week. 
It is vbMonday (2) if Monday is the first day of the 
week, etc. 
As an example, Sunday 3rd February, 2002 gives these 
results depending on whether Monday or Sunday is the 
first day of a week: 
Format(#2/3/2002#, "ww", 2) = 5 (week 5)  
Format(#2/3/2002#, "ww", 1) = 6 (week 6) 
Formats for controls, etc. 
Many control properties require formats of the same 
kind, for instance the date format for a textbox or a 
DateTime Picker. Usually the format follows the same 
rules as VBA's Format function, but there may be 
deviations. Some very annoying ones are: 
MM for month and mm for minute. 
HH for 24 hours, hh for hours with AM/PM. 
Named formats 
The format string may also be the name of a regional 
(local) format. As an example, the named format 
"Currency" will show a number with a $ in the US and 
with a £ in UK. The user can define the regional 
formats in Window's Control Panel -> Regional and 
Language Options. The following named formats exist: 
Named numeric 
formats 
Named date/time formats 
General Number 
General Date 
Currency 
Long Date 
Fixed 
Medium Date 
Standard 
Short Date 
Percent 
Long Time 
Scientific 
Medium Time 
Yes/No 
Short Time 
True/False 
On/Off 
126 
6. Visual Basic reference 
C# Imaging - C# ISSN Barcode Generating
drawing ISSN barcode with C# code to PDF, TIFF, Excel RasterEdge.Imaging.Font.dll. and height, setting the barcode image rotation degree, changing the barcode
can save pdf form data; add image field to pdf form
C# Imaging - C# Codabar Generator
image formats GIF, BMP, PNG, JPEG, and PDF, (Multi-page RasterEdge.Imaging.Font.dll. you can also customize barcode location on images by changing the horizontal
change font in pdf form; build pdf forms
Fig 6.4B  Format function   
Format function
Converts a value to a string, based on a format 
string. Format characters that are not 
placeholders, are shown as they are. 
Backslash+character is shown as the character 
alone, e.g. \d is shown as d.
Numeric placeholders:
0
Digit, leading and trailing zero okay here
#
Digit, no leading or trailing zero here
.
Decimal point (or regional variant)
E-or e-
Exponent, use all placeholders
E+ or e+ Show exponent with plus or minus
%
Show number as percent
Format(2.3, “00.00”)
= “02.30”
Format(2.36, “#0.0”)
= “2.4”
Format(0.3, “##.0#”)
= “.3”
Format(32448, “(00)00 00”) = “(03)24 48”
Format(32448, “##.#E+”)
= “32.4E+3”
Format(32448, “##.#E-”)
= “32.4E3”
Format(0.5, “#0.0%”) 
= “50.0%”
;
Separator between formats for positive,
negative, zero, and null values.
Format(-3, "000;(000);zero;---") = “(003)”
String placeholders
@
Character or space
&
Character or nothing
!
Cut offfrom left
Format(“A123”, “@@@@@@”) = “
¬¬
A123”
Format(“A123”, “&&&&&&”) = “A123”
Format(“A123”, “(@@)-@”) = “(A1)-23”
Format(“A123”, “!(@@)-@”) = “(12)-3”
Date/time placeholders
Example: DT = #2/3/2002 14:07:09# (Sunday)
Format(DT, “yyyy-mm-ddhh:nn:ss”, vbMonday) 
= “2002-02-03 14:07:09”
Format(DT, “yy-mmm-dat h:nnam/pm”)
= “02-feb-3 at 2:07 pm”
Format(DT, “ddddt\he y’t\h\da\yof yyyy”)
= “Sunday the 34’th day of 2002”
d
Day of month, no leading zero “3”
dd
Day of month, two digits “03”
ddd
Day of week, short text “Sun”
dddd
Day of week, full text “Sunday”
ww
Week number. First day of week as
third parameter, e.g. vbMonday
m
Month, no leading zero “2”
(Interpreted as minutes after h)
mm
Month, two digits “02”
(Interpreted as minutes after h)
mmm
Month, short text “Feb”
mmmm
Month, full text “February”
y
Day of year  “34”
yy
Year, two digits “02”
yyyy
Year, four digits “2002”
h
Hour, no leading zero “14”or “2”
hh
Hour, two digits “14”or “02”
AM/PM
Show AM or PM here, hours 12-based
am/pm
Show am or pm here, hours 12-based
n
Minutes, no leading zero “7”
nn
Minutes, two digits “07”
s
Seconds, no leading zero “9”
ss
Seconds, two digits “09”
Named formats (local format)
Format(2.3, "Currency") 
= "£2.30" (in UK)
also "Percent", "Yes/No", "Long Date" . . .
6. Visual Basic reference 
127
6.5 Other functions 
String functions 
String functions work on strings and characters. Figure 
6.5A shows the most important ones. 
Asc(s) takes the first character of s and returns it as an 
integer, the Ascii code for that character. Chr(c) works 
the other way and returns an Ascii code as a string of 
one character. 
A set of functions return the length of a string (Len), 
extract the left, right or middle part of a string (Left, 
Right, Mid), or trim a string of leading or trailing 
spaces (LTrim, RTrim, Trim). 
The functions LCase and UCase transform all letters to 
upper or lower case. Space(n) generates a string of n 
spaces. 
Comparing strings is in principle easy, in practice dif-
ficult due to regional variations of the alphabet, how to 
treat upper and lower case letters, etc. In each module, 
you can specify how strings are to be compared. They 
may be compared according to their Ascii codes 
(Option Compare Binary), according to the regional 
alphabet and without case sensitivity (Option Compare 
Text), or according to the rules of the database (Option 
Compare Database). In the Access database engine, 
Option Compare Database seems to work exactly as 
Option Compare Text. 
The function StrComp(s1, s2) compares s1 to find out 
whether s1 comes before s2 in the alphabetical se-
quence (result=-1), are equal (result=0), or comes later 
(result=1). Strings may also be compared simply with 
s1<s2, s1<=s2, etc. 
Iif and Choose 
Two functions select one value out of two or more 
choices. Iif(a, b, c) returns b if a is True, c otherwise. 
Choose(i, b1, b2, b3 . . . ) returns b1 when i=1, b2 
when i=2, etc. Figure 6.5A shows the details and ex-
amples. 
Array bounds 
Since arrays can be dynamic with variable bounds, it is 
convenient with functions that can tell the actual 
bounds. LBound( ) and UBound( ) give lower and 
upper bounds for the first or a later dimension. 
Dlookup, DMin, DMax, DSum 
These function are also called Direct Lookup, Direct 
Min, etc. They execute an SQL-query on the spot to 
extract a single value. One example on the figure is 
DMin("roomID", "tblRoom", "roomType=2")
It corresponds to this SQL-statement: 
Select Min(roomID) From tblRoom
Where roomType=2
;
The parameters to DMin( ) must be strings that can be 
substituted into the SQL-statement at the underscored 
places to give the desired result. 
MsgBox 
The MsgBox function shows a message to the user, 
asks for a choice, and returns the choice as the result. 
There are many parameters, but only the first one is 
required. It specifies the text to show to the user. The 
second parameter specifies the icon to show plus the 
set of choices to give. Later parameters specify box 
title, help codes, etc. There are many constants avail-
able to specify all of these. The example on Figure 
6.5A shows a few. (See section 3.6 for more exam-
ples.) 
128 
6. Visual Basic reference 
Fig 6.5A  String functions and miscellaneous
String functions
Null parameters: A Null string as input will give
the result Null. Null as another parameter is an
error.
Asc(“AB”)
= 65, Ascii code for first character
Chr(65)
= “A”, a one-letter string with this
ascii character
Len(“A_B”) = 3, length of string.
Left(“abc”, 2) = “ab”, leftmost two characters
Left(“abc”, 8) = “abc”, as many as available
Right(“abc”, 2) = “bc”, rightmost two characters
Mid(“abcdef”, 2, 3) = “bcd”,
three characters from character 2
LTrim(“ ab ”) = “ab ”, leading spaces removed
RTrim(“ ab “) = “ ab”, trailing spaces removed
Trim(“ ab “) = “ab”, leading and trailing removed
Lcase(“A-b”) = “a-b”, lower case of all letters
Ucase(“A-b”) = “A-B”, upper case of all letters
Space(5)
= String of 5 spaces
Option Compare Text | Binary | Database
Option in start of module. Text: string comparison
is case insensitive and follows regional settings.
Binary: comparison is based on the internal
ASCII code.
Database: comparison is defined by the SQL-
engine.
StrComp(“ab”, “abc”)  = -1, first string smallest
StrComp(“ab”, “ab”) = 0, strings equal
StrComp(“ac”, “abc”) = 1, first string largest
If “ab” < “abc” . . .
‘ Works just as well
Iif and Choose
Iif(a=a, b, c)
= b
Iif(a<>a, b, c)
= c
Iif(Null, b, c)
= c
Choose(2, a, b, c)
= b
Choose(4, a, b, c)
= Null
Choose(Null, a, b, c) Error
Array bounds
LBound(d)
Lower bound for first index
LBound(d, 2)
Lower bound for second index
UBound(d)
Upper bound for first index
UBound(d, 3)
Upper bound for third index
DLookup, DMin, DMax, DSum
DLookup(“name”, “tblGuest”, “guestID=7”)
= name of guest with guestID=7.
DMin(“roomID”, “tblRooms”, “roomType=2”)
= smallest room number among double rooms.
All three parameters are texts inserted into SQL.
DMax, Dsum, DCount, DAvg
Similar, just finds largest, sum, number of,
average. Null treatment, see SQL
MsgBox
MsgBox(“Text”, vbYesNo+vbCritical) =vbYes
Also: vbInformation, vbQuestion, vbExclamation
6. Visual Basic reference 
129
Type check functions 
Figure 6.5B shows a set of functions that can check the 
type of an operand or an expression. As an example, 
IsDate(d) checks whether d is of type Date or is a string 
that could be converted to a date by means of 
CDate(d). 
An interesting check function is VarType(v). It returns 
a number that shows the type of v. The figure shows 
the many possibilities and the constant name for each 
of them. In case of an array, two constants are added, 
vbArray (8192) and the constant for the type of the 
array. As an example, an array of integers will have the 
type number vbArray+vbInteger. 
Date and time functions 
Figure 6.5B also shows a set of functions to handle 
date and time. Three functions return the current date, 
the current time, and the current date+time (Date, 
Time, Now). The function Timer( ) returns the number 
of seconds since midnight, with the highest accuracy 
available to the computer. It is a good tool for timing 
program parts to find the bottleneck in a slow program. 
DateSerial computes a date value from the integer ar-
guments year, month, and day. TimeSerial computes a 
time value from hour, minute, and second. 
Finally a set of functions can extract day, month, etc. as 
integers from a date value. Refer to the figure for de-
tails. 
Math functions 
Figure 6.5C shows the mathematical functions avail-
able. We find the square root, the trigonometric func-
tions, exponential function and logarithm. There is also 
a random number generator. 
Abs(x) returns the absolute value of x. Sgn(x) returns 
the signum of x (1, 0, or -1). Int(x) and Fix(x) rounds 
the argument with different rules for negative numbers 
(for positive numbers they are equal). 
Hex(x) and Oct(x) shows x as a string in hexadecimal 
or octal notation. 
Financial functions 
Figure 6.5C also shows two of the many financial 
functions available. NPV returns the Net Present Value 
of a sequence of payments (positive and negative). It 
calculates what these values would total today at a 
given interest rate.  
IRR calculates the Internal Rate of Return for a se-
quence of payments. IRR is the interest rate at which 
the Net Present Value of the payments would be zero. 
There are many other financial functions available, but 
we don't explain them here. 
130 
6. Visual Basic reference 
Documents you may be interested
Documents you may be interested