想生成如下数据:然后去和数据库中的数据比较,如果数据库中的数据有两个号相同(比如:001、100、996等)并且包括在当前数据中,那就在屏幕上打印出来。例如01234在数据库里的没有相同的,就PASS。01235与数据库里第12行的505相同,就打印出来。
生成的数据:
01234
01235
01236
01237
01238
01239
01245
01246
01247
01248
01249
01256
01257
01258
01259
01267
01268
01269
01278
01279
01289
01345
01346
01347
01348
01349
01356
01357
01358
01359
01367
01368
01369
01378
01379
01389
01456
01457
01458
01459
01467
01468
01469
01478
01479
01489
01567
01568
01569
01578
01579
01589
01678
01679
01689
01789
02345
02346
02347
02348
02349
02356
02357
02358
02359
02367
02368
02369
02378
02379
02389
02456
02457
02458
02459
02467
02468
02469
02478
02479
02489
02567
02568
02569
02578
02579
02589
02678
02679
02689
02789
03456
03457
03458
03459
03467
03468
03469
03478
03479
03489
03567
03568
03569
03578
03579
03589
03678
03679
03689
03789
04567
04568
04569
04578
04579
04589
04678
04679
04689
04789
05678
05679
05689
05789
06789
12345
12346
12347
12348
12349
12356
12357
12358
12359
12367
12368
12369
12378
12379
12389
12456
12457
12458
12459
12467
12468
12469
12478
12479
12489
12567
12568
12569
12578
12579
12589
12678
12679
12689
12789
13456
13457
13458
13459
13467
13468
13469
13478
13479
13489
13567
13568
13569
13578
13579
13589
13678
13679
13689
13789
14567
14568
14569
14578
14579
14589
14678
14679
14689
14789
15678
15679
15689
15789
16789
23456
23457
23458
23459
23467
23468
23469
23478
23479
23489
23567
23568
23569
23578
23579
23589
23678
23679
23689
23789
24567
24568
24569
24578
24579
24589
24678
24679
24689
24789
25678
25679
25689
25789
26789
34567
34568
34569
34578
34579
34589
34678
34679
34689
34789
35678
35679
35689
35789
36789
45678
45679
45689
45789
46789
56789
数据库中的数据:
591
871
886
618
621
363
075
256
120
362
378
505
995
374
009
325
425
生成的数据:
01234
01235
01236
01237
01238
01239
01245
01246
01247
01248
01249
01256
01257
01258
01259
01267
01268
01269
01278
01279
01289
01345
01346
01347
01348
01349
01356
01357
01358
01359
01367
01368
01369
01378
01379
01389
01456
01457
01458
01459
01467
01468
01469
01478
01479
01489
01567
01568
01569
01578
01579
01589
01678
01679
01689
01789
02345
02346
02347
02348
02349
02356
02357
02358
02359
02367
02368
02369
02378
02379
02389
02456
02457
02458
02459
02467
02468
02469
02478
02479
02489
02567
02568
02569
02578
02579
02589
02678
02679
02689
02789
03456
03457
03458
03459
03467
03468
03469
03478
03479
03489
03567
03568
03569
03578
03579
03589
03678
03679
03689
03789
04567
04568
04569
04578
04579
04589
04678
04679
04689
04789
05678
05679
05689
05789
06789
12345
12346
12347
12348
12349
12356
12357
12358
12359
12367
12368
12369
12378
12379
12389
12456
12457
12458
12459
12467
12468
12469
12478
12479
12489
12567
12568
12569
12578
12579
12589
12678
12679
12689
12789
13456
13457
13458
13459
13467
13468
13469
13478
13479
13489
13567
13568
13569
13578
13579
13589
13678
13679
13689
13789
14567
14568
14569
14578
14579
14589
14678
14679
14689
14789
15678
15679
15689
15789
16789
23456
23457
23458
23459
23467
23468
23469
23478
23479
23489
23567
23568
23569
23578
23579
23589
23678
23679
23689
23789
24567
24568
24569
24578
24579
24589
24678
24679
24689
24789
25678
25679
25689
25789
26789
34567
34568
34569
34578
34579
34589
34678
34679
34689
34789
35678
35679
35689
35789
36789
45678
45679
45689
45789
46789
56789
数据库中的数据:
591
871
886
618
621
363
075
256
120
362
378
505
995
374
009
325
425
首先创建 Excel 对象,使用ComObj:
Dim ExcelID as Excel.Application
Set ExcelID as new Excel.Application
1) 显示当前窗口:
ExcelID.Visible := True;
2) 更改 Excel 标题栏:
ExcelID.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
ExcelID.WorkBooks.Add;
4) 打开已存在的工作簿:
ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' );
5) 设置第2个工作表为活动工作表:
ExcelID.WorkSheets[2].Activate;
或 ExcelID.WorkSheets[ 'Sheet2' ].Activate;
6) 给单元格赋值:
ExcelID.Cells[1,4].Value := '第一行第四列';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;
参考代码:ActiveSheet.HPageBreaks(1).Location = Range("A22")
10) 在第8列之前删除分页符:
ExcelID.ActiveSheet.Columns[4].PageBreak := 0;
11) 指定边框线宽度:
ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
12) 清除第一行第四列单元格公式:
ExcelID.ActiveSheet.Cells[1,4].ClearContents;
13) 设置第一行字体属性:
ExcelID.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelID.ActiveSheet.Rows[1].Font.Bold := True;
ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;
14) 进行页面设置:
a.页眉:
ExcelID.ActiveSheet.PageSetup.CenterHeader := '报表演示';
b.页脚:
ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P页';
c.页眉到顶端边距2cm:
ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.页脚到底端边距3cm:
ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
e.顶边距2cm:
ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;
f.底边距2cm:
ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
g.左边距2cm:
ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
h.右边距2cm:
ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;
i.页面水平居中:
ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.页面垂直居中:
ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
k.打印单元格网线:
ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;
15) 拷贝操作:
a.拷贝整个工作表:
ExcelID.ActiveSheet.Used.Range.Copy;
b.拷贝指定区域:
ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;
c.从A1位置开始粘贴:
ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
d.从文件尾部开始粘贴:
ExcelID.ActiveSheet.Range.PasteSpecial;
16) 插入一行或一列:
a. ExcelID.ActiveSheet.Rows[2].Insert;
b. ExcelID.ActiveSheet.Columns[1].Insert;
17) 删除一行或一列:
a. ExcelID.ActiveSheet.Rows[2].Delete;
b. ExcelID.ActiveSheet.Columns[1].Delete;
18) 打印预览工作表:
ExcelID.ActiveSheet.PrintPreview;
19) 打印输出工作表:
ExcelID.ActiveSheet.PrintOut;
20) 工作表保存:
If not ExcelID.ActiveWorkBook.Saved then
ExcelID.ActiveSheet.PrintPreview
End if
21) 工作表另存为:
ExcelID.SaveAs( 'C:\Excel\Demo1.xls' );
22) 放弃存盘:
ExcelID.ActiveWorkBook.Saved := True;
23) 关闭工作簿:
ExcelID.WorkBooks.Close;
24) 退出 Excel:
ExcelID.Quit;
25) 设置工作表密码:
ExcelID.ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True
26) EXCEL的显示方式为最大化
ExcelID.Application.WindowState = xlMaximized
27) 工作薄显示方式为最大化
ExcelID.ActiveWindow.WindowState = xlMaximized
28) 设置打开默认工作薄数量
ExcelID.SheetsInNewWorkbook = 3
29) '关闭时是否提示保存(true 保存;false 不保存)
ExcelID.DisplayAlerts = False
30) 设置拆分窗口,及固定行位置
ExcelID.ActiveWindow.SplitRow = 1
ExcelID.ActiveWindow.FreezePanes = True
31) 设置打印时固定打印内容
ExcelID.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
32) 设置打印标题
ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = ""
33) 设置显示方式(分页方式显示)
ExcelID.ActiveWindow.View = xlPageBreakPreview
34) 设置显示比例
ExcelID.ActiveWindow.Zoom = 100
35) 让Excel 响应 DDE 请求
Ex.Application.IgnoreRemoteRequests = False用VB操作EXCEL
Private Sub Command3_Click()
On Error GoTo err1
Dim i As Long
Dim j As Long
Dim objExl As Excel.Application '声明对象变量
Me.MousePointer = 11 '改变鼠标样式
Set objExl = New Excel.Application '初始化对象变量
objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1
objExl.Workbooks.Add '增加一个工作薄
objExl.Sheets(objExl.Sheets.Count).Name = "book1" '修改工作薄名称
objExl.Sheets.Add , objExl.Sheets("book1") '增加第二个工作薄在第一个之后
objExl.Sheets(objExl.Sheets.Count).Name = "book2"
objExl.Sheets.Add , objExl.Sheets("book2") '增加第三个工作薄在第二个之后
objExl.Sheets(objExl.Sheets.Count).Name = "book3" objExl.Sheets("book1").Select '选中工作薄<book1>
For i = 1 To 50 '循环写入数据
For j = 1 To 5
If i = 1 Then
objExl.Selection.NumberFormatLocal = "@" '设置格式为文本
objExl.Cells(i, j) = " E " & i & j
Else
objExl.Cells(i, j) = i & j
End If
Next
Next
objExl.Rows("1:1").Select '选中第一行
objExl.Selection.Font.Bold = True '设为粗体
objExl.Selection.Font.Size = 24 '设置字体大小
objExl.Cells.EntireColumn.AutoFit '自动调整列宽
objExl.ActiveWindow.SplitRow = 1 '拆分第一行
objExl.ActiveWindow.SplitColumn = 0 '拆分列
objExl.ActiveWindow.FreezePanes = True '固定拆分 objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行
objExl.ActiveSheet.PageSetup.PrintTitleColumns = "" '打印标题 objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _
Format(Now, "yyyy年mm月dd日 hh:MM:ss")
objExl.ActiveWindow.View = xlPageBreakPreview '设置显示方式
objExl.ActiveWindow.Zoom = 100 '设置显示大小
objExl.ActiveSheet.PageSetup.Orientation = xlLandscape '设置打印方向(横向)
'给工作表加密码
objExl.ActiveSheet.Protect "123", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
objExl.Application.IgnoreRemoteRequests = False
objExl.Visible = True '使EXCEL可见
objExl.Application.WindowState = xlMaximized 'EXCEL的显示方式为最大化
objExl.ActiveWindow.WindowState = xlMaximized '工作薄显示方式为最大化
objExl.SheetsInNewWorkbook = 3 '将默认新工作薄数量改回3个
Set objExl = Nothing '清除对象
Me.MousePointer = 0 '修改鼠标
Exit Sub
err1:
objExl.SheetsInNewWorkbook = 3
objExl.DisplayAlerts = False '关闭时不提示保存
objExl.Quit '关闭EXCEL
objExl.DisplayAlerts = True '关闭时提示保存
Set objExl = Nothing
Me.MousePointer = 0
End Sub
tb 3位数数据 的表
select s1,s2 from ta,tb
where
(
(left(s2,1)=right(s2,1))
or (left(s2,1)=substring(s2,2,1))
or (right(s2,1)=substring(s2,2,1))
)
and
(
(charindex(left(s2,1),s1)>0)
and
(charindex(right(s2,1),s1)>0)
and
(charindex(substring(s2,2,1),s1)>0)
)
输出结果:
s1 s2
01239 009
01249 009
01259 009
01269 009
01279 009
01289 009
01349 009
01359 009
01369 009
01379 009
01389 009
01459 009
01469 009
01479 009
01489 009
01569 009
01579 009
01589 009
01679 009
01689 009
01789 009
02349 009
02359 009
02369 009
02379 009
02389 009
02459 009
02469 009
02479 009
02489 009
02569 009
02579 009
02589 009
02679 009
02689 009
02789 009
03459 009
03469 009
03479 009
03489 009
03569 009
03579 009
03589 009
03679 009
03689 009
03789 009
04569 009
04579 009
04589 009
04679 009
04689 009
04789 009
05679 009
05689 009
05789 009
06789 009
01236 363
01346 363
01356 363
01367 363
01368 363
01369 363
02346 363
02356 363
02367 363
02368 363
02369 363
03456 363
03467 363
03468 363
03469 363
03567 363
03568 363
03569 363
03678 363
03679 363
03689 363
12346 363
12356 363
12367 363
12368 363
12369 363
13456 363
13467 363
13468 363
13469 363
13567 363
13568 363
13569 363
13678 363
13679 363
13689 363
23456 363
23467 363
23468 363
23469 363
23567 363
23568 363
23569 363
23678 363
23679 363
23689 363
34567 363
34568 363
34569 363
34678 363
34679 363
34689 363
35678 363
35679 363
35689 363
36789 363
01235 505
01245 505
01256 505
01257 505
01258 505
01259 505
01345 505
01356 505
01357 505
01358 505
01359 505
01456 505
01457 505
01458 505
01459 505
01567 505
01568 505
01569 505
01578 505
01579 505
01589 505
02345 505
02356 505
02357 505
02358 505
02359 505
02456 505
02457 505
02458 505
02459 505
02567 505
02568 505
02569 505
02578 505
02579 505
02589 505
03456 505
03457 505
03458 505
03459 505
03567 505
03568 505
03569 505
03578 505
03579 505
03589 505
04567 505
04568 505
04569 505
04578 505
04579 505
04589 505
05678 505
05679 505
05689 505
05789 505
01268 886
01368 886
01468 886
01568 886
01678 886
01689 886
02368 886
02468 886
02568 886
02678 886
02689 886
03468 886
03568 886
03678 886
03689 886
04568 886
04678 886
04689 886
05678 886
05689 886
06789 886
12368 886
12468 886
12568 886
12678 886
12689 886
13468 886
13568 886
13678 886
13689 886
14568 886
14678 886
14689 886
15678 886
15689 886
16789 886
23468 886
23568 886
23678 886
23689 886
24568 886
24678 886
24689 886
25678 886
25689 886
26789 886
34568 886
34678 886
34689 886
35678 886
35689 886
36789 886
45678 886
45689 886
46789 886
56789 886
01259 995
01359 995
01459 995
01569 995
01579 995
01589 995
02359 995
02459 995
02569 995
02579 995
02589 995
03459 995
03569 995
03579 995
03589 995
04569 995
04579 995
04589 995
05679 995
05689 995
05789 995
12359 995
12459 995
12569 995
12579 995
12589 995
13459 995
13569 995
13579 995
13589 995
14569 995
14579 995
14589 995
15679 995
15689 995
15789 995
23459 995
23569 995
23579 995
23589 995
24569 995
24579 995
24589 995
25679 995
25689 995
25789 995
34569 995
34579 995
34589 995
35679 995
35689 995
35789 995
45679 995
45689 995
45789 995
56789 995
select distinct s1 from ta,tb
where
(
(left(s2,1)=right(s2,1))
or (left(s2,1)=substring(s2,2,1))
or (right(s2,1)=substring(s2,2,1))
)
and
(
(charindex(left(s2,1),s1)>0)
and
(charindex(right(s2,1),s1)>0)
and
(charindex(substring(s2,2,1),s1)>0)
)
结果
s1
01235
01236
01239
01245
01249
01256
01257
01258
01259
01268
01269
01279
01289
01345
01346
01349
01356
01357
01358
01359
01367
01368
01369
01379
01389
01456
01457
01458
01459
01468
01469
01479
01489
01567
01568
01569
01578
01579
01589
01678
01679
01689
01789
02345
02346
02349
02356
02357
02358
02359
02367
02368
02369
02379
02389
02456
02457
02458
02459
02468
02469
02479
02489
02567
02568
02569
02578
02579
02589
02678
02679
02689
02789
03456
03457
03458
03459
03467
03468
03469
03479
03489
03567
03568
03569
03578
03579
03589
03678
03679
03689
03789
04567
04568
04569
04578
04579
04589
04678
04679
04689
04789
05678
05679
05689
05789
06789
12346
12356
12359
12367
12368
12369
12459
12468
12568
12569
12579
12589
12678
12689
13456
13459
13467
13468
13469
13567
13568
13569
13579
13589
13678
13679
13689
14568
14569
14579
14589
14678
14689
15678
15679
15689
15789
16789
23456
23459
23467
23468
23469
23567
23568
23569
23579
23589
23678
23679
23689
24568
24569
24579
24589
24678
24689
25678
25679
25689
25789
26789
34567
34568
34569
34579
34589
34678
34679
34689
35678
35679
35689
35789
36789
45678
45679
45689
45789
46789
56789