display pdf winform c# : How to permanently rotate pdf pages Library SDK component .net wpf winforms mvc 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200750-part678

you should assume that you need to limit the number of records you bring into Excel by adding a
restriction in the form of a WHERE clause to your query. The following procedure demonstrates this:
Public Sub QueryTextFile()
Dim rsData As ADODB.Recordset
Dim sConnect As String
Dim sSQL As String
‘ Create the connection string.
sConnect = “Provider=Microsoft.ACE.OLEDB.12.0;” & _
“Data Source=C:\Files\;” & _
“Extended Properties=Text;”
‘ Create the SQL statement.
sSQL = “SELECT * FROM Sales.csv WHERE Type=’Art’;”
Set rsData = New ADODB.Recordset
rsData.Open sSQL, sConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
‘ Check to make sure we received data.
If Not rsData.EOF Then
‘ Dump the returned data onto Sheet1.
Sheet1.Range(“A1”).CopyFromRecordset rsData
Else
MsgBox “No records returned.”, vbCritical
End If
‘ Clean up our Recordset object.
rsData.Close
Set rsData = Nothing
End Sub
Sum mar y
Many years ago you could concentrate on understanding Excel, and that would have been enough to get
by. Today, however, it is becoming increasingly difficult to avoid coordinating your Excel activities with
a back-end data source of some kind. This chapter provided you with a solid introduction to using SQL
and ADO to access various data sources. Due to space constraints, this chapter could only scratch the
surface of possibilities in each section. So if data access is or might become a significant part of your
development effort, you are strongly recommended to obtain and read more specialized books on the
subject.
The next chapter continues to look at managing external data with Excel by examining some of the built-
in features provided by Excel for this purpose.
468
Chapter 20: Data Access with ADO
How to permanently rotate pdf pages - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
save pdf rotated pages; rotate pages in pdf online
How to permanently rotate pdf pages - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
how to save a pdf after rotating pages; how to rotate page in pdf and save
Ma n ag in g  Ex te rn al   D at a
Chapter 20 discussed how to access data with essentially unlimited flexibility using ADO. Excel
also provides some built-in data management features, primarily through the QueryTable,
ListObject, and WorkbookConnectionobjects. Excel’s built-in data management features have
less flexibility than custom ADO programming. For example, you can only use these features to
retrieve data, not modify it. But they are simpler and offer a number of useful capabilities right out
of the box. This chapter examines some of Excel’s built-in data management capabilities.
The Ext er nal Data U ser  Interface
The built-in data management features in Excel 2007 are accessed from two groups on the Data tab
of the Ribbon in the Excel 2007 user interface. The Get External Data and Manage Connections
groups are shown in Figure 21-1.
Figure 21-1
The controls on the Get External Data group are used to create new connections from your work-
book to various data sources, and the controls on the Manage Connections group are used to man-
age data connections that already exist in your workbook.
VB.NET PDF Page Redact Library: redact whole PDF pages in vb.net
extract, copy, paste, C#.NET rotate PDF pages, C#.NET If you need to permanently removing visible text and our redact function API and redact entire PDF pages.
permanently rotate pdf pages; how to rotate one page in a pdf file
C# PDF Page Redact Library: redact whole PDF pages in C#.net, ASP.
Page: Rotate a PDF Page. PDF Read. Text: Extract Redaction is the process of permanently removing visible our redact function API to redact entire PDF pages.
rotate pdf pages; how to rotate all pages in pdf in preview
Get External Data
The controls in the Get External Data group allow you to retrieve external data directly from various
data sources or use predefined queries stored in various data connection files. The three buttons along
the left side of the Get External Data group provide quick access for retrieving Microsoft Access data,
data from the web, and data from text files, respectively. The From Other Sources button provides you
with a drop-down list of all the other options available for retrieving data from external data sources, as
shown in Figure 21-2.
Figure 21-2
This chapter is concerned with the external data features that create a QueryTable object in the back-
ground. These features include Web Queries and all queries performed on data sources that return
uncomplicated tabular data, including text files and relational databases like Access and SQLServer.
The Existing Connections button displays the Existing Connections dialog, shown in Figure 21-3. This
dialog displays a list of connections that currently exist in the workbook, as well as a list of stored data
connection files that you can use to retrieve external data.
The controls in the Get External Data group will be disabled if you have selected a cell within the range
of an existing external data connection. If these controls are disabled, try selecting an unused cell outside
of any existing data tables.
470
Chapter 21: Managing External Data
VB.NET Image: How to Process & Edit Image Using VB.NET Image
VB.NET Image Rotator Add-on to Rotate Image, VB.NET Watermark Maker to VB.NET image editor control SDK, will the original image file be changed permanently?
saving rotated pdf pages; rotate single page in pdf file
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Excel
to change view orientation by clicking rotate button. users can convert Excel to PDF document, export Users can save Excel annotations permanently by clicking
rotate pages in pdf online; rotate individual pages in pdf
Figure 21-3
Manage Connections
The controls on the Manage Connections group allow you to manipulate the individual connections in
your workbook, as well as providing a central location for viewing and managing all connections in the
currently active workbook. The buttons in this group that operate on a specific connection will be dis-
abled until you select a cell within the range assigned to a connection. With a cell in a connection range
selected, the Manage Connections group will look similar to Figure 21-4.
Figure 21-4
The most interesting control on the Manage Connections group is the new Connections button. This dis-
plays a dialog that lists all of the external data connections in the currently active workbook and allows
you to see where they are used, as well as view and manipulate their properties. The Workbook
Connections dialog is shown in Figure 21-5.
471
Chapter 21: Managing External Data
VB.NET Image: How to Create a Customized VB.NET Web Viewer by
used document & image files (PDF, Word, TIFF btnRotate270: rotate image or document page in burnAnnotationToImages: permanently burn drawn annotation on page in
rotate pdf pages and save; how to rotate a single page in a pdf document
How to C#: Cleanup Images
By setting the BinarizeThreshold property whose value range is 0 to 255, it will permanently modify the image to 1bpp grayscale image of the Detect Blank Pages.
reverse pdf page order online; how to rotate one pdf page
Figure 21-5
The Properties and Refresh buttons on this dialog expose exactly the same features as those shown on
the Refresh All button in Figure 21-4.
The Quer yTable and List Object
When you use the Get External Data feature to create Web Queries or retrieve tabular data, you are creat-
ing a QueryTable to manage that data. This QueryTablecan exist alone, or it can be associated with a
ListObject(the ListObjectis also covered in Chapter 6). Retrieving data using Web Queries or text
files from the user interface will create a standalone QueryTable. Retrieving data from relational
databases like Access or SQL Server will create a ListObject whose data source is a QueryTable.
When you create your own QueryTable objects using VBA, you are free to create them either way. Both
methods are demonstrated in this section.
A QueryTable from a Relational Database
As a first introduction to the QueryTable object, create a simple QueryTable based on a table from the
Access 2007 Northwind database used in Chapter 20. The code to create the QueryTable is as follows:
This section utilizes the Northwind database, a sample database provided with
Microsoft Access 2007. If you don’t have this database available, you will need to
install it to run the example code.
472
Chapter 21: Managing External Data
How to C#: Color and Lightness Effects
Geometry: Rotate. Image Bit Depth. Color and Contrast. Cleanup Images. Effect VB.NET How-to, VB.NET PDF, VB.NET Word range is 0 to 255, it will permanently modify
rotate all pages in pdf and save; reverse page order pdf online
Sub CreateSimpleQueryTable()
Dim qryTable As QueryTable
Dim rngDestination As Range
Dim strConnection As String
‘ Define the connection string and destination range.
strConnection = “OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;” & _
“Data Source=C:\Files\Northwind 2007.accdb”
Set rngDestination = Sheet1.Range(“A1”)
‘ Create the QueryTable.
Set qryTable = Sheet1.QueryTables.Add(strConnection, rngDestination)
‘ Populate the QueryTable.
qryTable.CommandText = “Customers”
qryTable.CommandType = xlCmdTable
qryTable.Refresh
End Sub
There are three steps involved in creating a QueryTable:
1.
Define the connection string and destination range. If the connection string used here looks
familiar, that’s no coincidence. It’s almost exactly the same connection string used to create an
ADO connection to the Northwind 2007 Access database in Chapter 20. This is because both
ADO and QueryTables use the same underlying OLE DB drivers to connect to relational
databases. The only difference in this case is that the first item in the connection string must
specify what type of connection string it is (in this case OLEDB). This is because a QueryTable
can be based on several different connection types, so you need to tell it which type you’re
using. The destination range is a reference to the cell on the destination worksheet that you
want to be the top-left cell in the resulting QueryTable.
2.
Create the QueryTable object. This is a simple matter of calling the QueryTables.Add method,
passing it the connection string and destination range defined in step 1, and assigning the result
to a QueryTable object variable that will be used for further manipulation of the QueryTable.
3.
Populate the QueryTable object. After step 2, the QueryTable exists, it knows what its data
source is, and it knows where on the destination worksheet it will be located. However, it 
doesn’t know what data to display. Remedy this by using the CommandText and CommandType
properties of the QueryTable object to tell it to display the contents of the Customers table.
Actual retrieval of data is accomplished by calling the QueryTable.Refresh method.
Asection of the QueryTable created in the previous example is shown in Figure 21-6.
Figure 21-6
473
Chapter 21: Managing External Data
AQueryTablethat displays data from a relational database may need to be updated periodically —for
example, in cases where other users may have added new records that need to be displayed. You can
update the QueryTable data at any time by calling the QueryTable.Refresh method. The QueryTable
will also perform this operation for you automatically, if you tell it to do so by adding the following line 
of code:
‘ Populate the QueryTable.
qryTable.CommandText = “Customers”
qryTable.CommandType = xlCmdTable
qryTable.RefreshPeriod = 30
qryTable.Refresh
This line of code tells the QueryTable to refresh itself automatically every 30 minutes, and it will 
continue to do so every 30 minutes for as long as the workbook is open. The value assigned to the
QueryTable.RefreshPeriodproperty is persisted, so even after you close and reopen the workbook
containing the QueryTable, it will continue to refresh automatically at the interval you’ve specified.
The refresh period is specified in minutes, with valid values being 1 through 32,767. Setting the
QueryTable.RefreshPeriodproperty to 0 disables automatic refreshing. This is also the default 
value if you don’t specify this property.
You can think of a QueryTable as a container for whatever data you want to put in it. Just like you can
refresh the QueryTable at any time to update it with the latest data from the data source, you can also
change the data displayed by the QueryTable at any time by simply changing its CommandText and
CommandTypeproperties and calling its Refreshmethod:
With Sheet1.QueryTables(1)
.CommandText = “SELECT [First Name], [Last Name] FROM Customers”
.CommandType = xlCmdSql
.Refresh
End With
This code changes the QueryTable from displaying the entire Customers table to deriving its data from
a SQL statement that retrieves just the first and last names of each customer. See Chapter 20 for an intro-
duction to SQL if you aren’t familiar with it. As soon as this code is executed, the results displayed by
the QueryTable will change accordingly, as shown in Figure 21-7.
Figure 21-7
By default, a QueryTable will perform what is called a background query. This means that as soon as the
query specified by the QueryTable has been submitted, VBA will return control of Excel back to the user.
This may be a good choice if the QueryTableperforms a long-running query and you don’t want to
require the user to sit and wait for it to finish. It may also be a bad choice if something critical in your appli-
cation depends on the result of the query, and it therefore must be completed before your code continues.
474
Chapter 21: Managing External Data
In this case you may want to turn off background querying by setting the QueryTable.BackgroundQuery
property to False:
‘ Populate the QueryTable.
qryTable.CommandText = “Customers”
qryTable.CommandType = xlCmdTable
qryTable.RefreshPeriod = 30
qryTable.BackgroundQuery = False
qryTable.Refresh
The QueryTable.Refresh method also has a BackgroundQuery argument that can be set to False
to accomplish the same thing without requiring an additional line of code. The difference is that the
QueryTable.BackgroundQueryproperty is persistent and applies to all future refreshes, whereas the
BackgroundQueryargument to the QueryTable.Refreshmethod must be specified each time you
refresh the QueryTable or it will simply default to True.
A Query Table Associated with a ListObject
Standalone QueryTables are good for retrieving data that will be used for background or display pur-
poses only. If you want the user to be able to interact with the data after it has been retrieved, a better
option is to create a QueryTable associated with a ListObject. This creates a table in the Excel user
interface with all of the built-in ease-of-manipulation features that users need to work with the data.
The code for creating a QueryTable associated with a ListObject is very similar to the code for creat-
ing a QueryTable alone. In fact, the preceding QueryTable example can be modified to use a
ListObjectby changing a single line of code:
Sub CreateQueryTableWithList()
Dim qryTable As QueryTable
Dim rngDestination As Range
Dim strConnection As String
‘ Define the connection string and destination range.
strConnection = “OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;” & _
“Data Source=C:\Files\Northwind 2007.accdb”
Set rngDestination = Sheet2.Range(“A1”)
‘ Create the ListObject and get a reference to its QueryTable.
Set qryTable = Sheet2.ListObjects.Add(SourceType:=xlSrcExternal, _
Source:=strConnection, Destination:=rngDestination).QueryTable
‘ Populate the QueryTable.
Note that there is some overlap between the QueryTable and ListObject proper-
ties and methods. For example, both the QueryTable and ListObjecthave a
Refreshmethod that updates their data. When there is duplication, which object’s
property or method you decide to use is a matter of preference. Because this chapter
focuses on QueryTables, the QueryTable properties and methods are used wher-
ever there is duplication between the two object models.
475
Chapter 21: Managing External Data
qryTable.CommandText = “Customers”
qryTable.CommandType = xlCmdTable
qryTable.Refresh False
End Sub
The process for creating a standalone QueryTableand the process for creating a QueryTable associated
with a ListObject are fundamentally the same, the only difference being that you use the arguments of
the ListObjects.Add method to specify the connection string and destination. Because a ListObject
can have a number of additional data sources besides the external data used in this example, you also
need to specify what type of data source your connection string represents, using the SourceTypeargu-
ment of the ListObjects.Add method. See Chapter 6 for more details on ListObjects.
Aportion of the table created by the previous code is shown in Figure 21-8.
Figure 21-8
Any time a ListObject is created from an external data source, either using VBA or through the Excel
UI, an associated QueryTableobject is created. You can use this QueryTableto manipulate the source
data for any ListObject in a workbook.
QueryTables and Parameter Queries
It is often useful to base your QueryTable on a parameter query rather than a fixed SQL statement. This
allows you to determine which subset of the data you display, and even allows you to provide your
users with the ability to modify the parameters when the QueryTableis refreshed.
One notable quirk of parameter queries is that QueryTableswill not support them if you use the OLE
DB provider used in the previous two sections. Instead, you must switch to the ODBC driver. This is a
simple matter of changing the first argument of the connection string from OLEDB to ODBC and provid-
ing ODBC connection information:
Sub CreateQueryTableWithParameters()
Dim qryTable As QueryTable
Dim rngDestination As Range
Note that a QueryTable associated with a ListObject is not part of the Worksheet
.QueryTablescollection. It can only be accessed through the ListObject.QueryTable
property of its associated ListObject. If you are using VBA to examine worksheets
for the existence of query tables, you will need to look for them both directly in the
QueryTablescollection and indirectly in the ListObjectscollection.
476
Chapter 21: Managing External Data
Dim strConnection As String
Dim strSQL As String
‘ Define the connection string and destination range.
strConnection = “ODBC;DSN=MS Access Database;” & _
“DBQ=C:\Files\Northwind 2007.accdb;”
Set rngDestination = Sheet3.Range(“A1”)
‘ Create a parameter query.
strSQL = “SELECT [Product Name], [List Price], [Quantity Per Unit]” & _
“ FROM Products” & _
“ WHERE Category = ?;”  ‘ This is the parameter.
‘ Create the QueryTable.
Set qryTable = Sheet3.QueryTables.Add(strConnection, rngDestination)
‘ Populate the QueryTable.
qryTable.CommandText = strSQL
qryTable.CommandType = xlCmdSql
qryTable.Refresh False
End Sub
In this example, you set the CommandText property of the QueryTable to a SQL statement that selects
the Product Name, List Price, and Quantity Per Unit from the Products table of the Northwind 2007
database. The WHERE clause of the SQL statement contains a parameter. A parameter is created by plac-
ing a question mark character (?) where an actual value would normally go. A SQL statement may con-
tain one or more parameters at any point where a value from the database would normally go. You
cannot use parameters for table names, column names, or SQLkeywords.
When this code is executed, VBA automatically recognizes that the SQL contains a parameter, and it will
prompt you to enter a value for the parameter by displaying the dialog box shown in Figure 21-9.
Figure 21-9
For each parameter in the CommandText property of the QueryTable, VBA creates a Parameter object
that it adds to the QueryTable.Parameters collection. You can gain some additional control over how
parameters are handled by creating these Parameter objects and adding them to the Parameters col-
lection yourself. 
You create parameters using the QueryTable.Parameters.Add method. This method adds a
Parameterobject to the QueryTableand returns a reference to it. You can then use that reference to
modify the behavior of the Parameter object. The next example uses this capability to prepopulate the
477
Chapter 21: Managing External Data
Documents you may be interested
Documents you may be interested