- ·上一篇:excel按键宏如何设置
- ·下一篇:如何在excel里面重命名
vb数据库如何合并excel
1.如何使用VB实现多个excel表格合并在一个EXCEL表格里面
由于你描述得太简单了,所以,只能给你提供一个思路,请按照此思路,进行修改完善代码即可。
Sub FileJoin()
Dim Wb As Workbook
Dim cPath$, myFile$
cPath = ThisWorkbook.Path & "\"'获取本文件所在路径
'如果扩展名不是xls请修改为你实际的扩展名
myFile = Dir(cPath & "*.xls")
Set Wb = ThisWorkbook
Application.ScreenUpdating = False
Do While myFile <> ""
If myFile <> ThisWorkbook.Name Then
With Workbooks.Open(cPath & myFile)
'将子文件中的第一个工作表复制到本工作薄中
.Sheets(1).Copy after:=Wb.Sheets(Wb.Sheets.Count)
.Close False
End With
End If
myFile = Dir'在本文件夹下查找下一个xls扩展名的文件
Loop
Application.ScreenUpdating = True
MsgBox "汇总完毕!", vbInformation, "提示"
End Sub
2.vb如何将SQL数据库查询的结果导出到带字段名的Excel表?v?
你在用CopyFromRecordset前先把字段名写上,然后换一行再把数据集拷贝就可以了。
===========================================================先把这句mExcelFile。Application。
Range("A1")。CopyFromRecordset mRs改为:mExcelFile。
Application。Range("A2")。
CopyFromRecordset mRs然后在这句前面加上下面的代码试试看,应该可以的:For i = 0 To mRst。 Fields。
Count - 1mExcelFile。ActiveSheet。
Cells(1, i + 1)。Value = mRst。
Fields(i)。NameNext'设置字段名加粗(如果不需要可忽略此句)mExcelFile。
ActiveSheet。 Range(。
ActiveSheet。Cells(1, 1), mExcelFile。
ActiveSheet。Cells(1, mRst。
Fields。Count))。
Font。Bold = True。
3.VB中如何将access数据库中某张表一行信息复制在原表中并重新? 爱
这是C#对通过ODBC链接的数据库进行的操作。
只需要在应用程序里面指定已经配置好的数据源就可以连接,访问数据库。但是,这种方式也有一定的局限性,需要手工的在ODBC数据源里面配置。
需要教会程序的使用者如何去配置,而且,如果一不小心更改了ODBC数据源的配置(也许是无意的)。 就会造成连接数据库失败。
这时候,程序的使用人员也许会一筹莫展,束手无策。 ? 自然的,读者就会提出这样一个问题,能不能不通过ODBC数据源的配置,而在程序里面,根据程序安装的环境,自动的配置数据库连接。
答案是肯定的,下面我们就介绍一种在程序中通过修改Window注册表的办法来动态的配置ODBC数据源的方法。 ? 其实现的基本思想是这样的:先把开发环境下的注册表中的ODBC数据源信息导出到一个文件中,然后将导出的内容作为应用程序中的字符串常量进行保存。
在程序运行的时候,检查ODBC数据源的注册情况,如果发现注册不正确,就根据环境的信息和字符串常量动态的确定注册表的内容,写如一个临时的注册表文件中。 用批处理文件将该临时文件中的ODBC数据源信息导入到系统注册表,从而实现了ODBC数据源的动态注册。
? 操作步骤 1.运行注册表编辑器程序(Regedit。exe)。
? 2.从注册表项HKEY_CURRENT_USERSoftwareODBCODBC。 INIODBC Data Sources下导出数据源名称信息到Reg1。
reg文件中。这个表项下面存放的是用户定义的数据源,如果需要系统数据源信息,则可导出HKEY_Local_MachineSoftwareODBC。
INIODBC Data Sources到注册文件中。 ? 3.导出要注册的数据源名称的具体连接参数信息到db2。
reg中。在此,以导出名称为“PostMdb”的数据为例,具体路径: HKEY_CURRENT_USERSoftwareODBCODBC。
INIPostMdb。 ? 4.用文本编辑器如(NotePad。
exe)打开上述db1。reg文件,保留数据源名称为PostMdb的行;并将db2。
reg文件内容与当前db1。reg内容合并。
假设修改后“PostMdb”数据源注册信息如下: ? REGEDIT4 ? [HKEY_CURRENT_USERSoftwareODBCODBC。 INIODBC Data Sources] ? ″PostMdb″=″Microsoft Access Driver (*。
mdb)″ ? [HKEY_CURRENT_USERSoftwareODBCODBC。INIPostMdb] ? ″Driver″=″C:WINDOWSSYSTEMODBCJT32。
DLL″ ? ″DBQ″=″c:My Documentsdb1。mdb? r> ? ″Description″=″Post Card Mis Database″ ? ″DriverId″=dword:00000019 ? ″FIL″=″MS Access;″ ? ″SafeTransactions″=dword:00000000 ? ″UID″=″″ ? [HKEY_CURRENT_USERSoftwareODBCODBC。
INIPostMdbEngines] ? [HKEY_CURRENT_USERSoftwareODBCODBC。INIPostMdbEnginesJet] ? ″ImplicitCommitSync″=″″ ? ″MaxBufferSize″=dword:00000800 ? ″PageTimeout″=dword:00000005 ? ″Threads″=dword:00000003 ? ″UserCommitSync″=″Yes″5.动态注册ODBC数据源的实现从上述注册信息可以看出,对于特定的数据源来说,实际上要动态确定的只是“Driver”和“DBQ”两项内容。
将“Driver”=“C:WINDOWSSYSTEMODBCJT32。DLL”修改为“Driver”=“%sODBCJT32。
DLL”,将“DBQ”=“c:My Documentsdb1。mdb”修改为“DBQ”=“%sdb1。
mdb”。复制修改后的注册信息到程序单元中存储为一字符串常量,命名为OdbcStr。
以下以Delphi为例说明实现方法。 ? ? 为便于说明,假设主窗体名称为Form1,通过一命令钮Button1注册ODBC数据源。
具体根据读者需要自行设定。 ? procedure TForm1。
Button1Click(Sender: TObject);varI : Integer; ? J : double; ? RegF: TextFile; ? SysDir: PChar; ? AppPath, Params, Path, DbPath: string;begin ? try ? //生成注册用的批处理文件 ? Params :=′Regedit/s tmp。 reg′; //批处理文件内容AppPath := ExtractFilePath(Application。
ExeName); //取得应用程序当前路径AssignFile(RegF, AppPath+′Reg。Bat′); //指定批处理文件路径和名称ReWrite(RegF); //创建和打开指定的文本文件WriteLn(RegF, Params); //将注册命令批处理内容写入文件CloseFile(RegF);//生成注册表文件GetMem(SysDir, 255);GetSystemDirectory(SysDir, 255); //取得Windows系统目录Path := String(SysDir);Path := InsertSplash(Path); //将类似C:WINDOWSSYSTEM变为C:WINDOWSSYSTEMDelete(AppPath, Length(AppPath), 1); //将字符串尾部′′字符删除DbPath := InsertSplash(AppPath); //取得数据库存放路径Params := Format(OdbcStr, [Path, DbPath]);AssignFile(RegF, AppPath+′Tmp。
Reg′);ReWrite(RegF);WriteLn(RegF, Params);CloseFile(RegF);//通过Api函数执行reg。bat, Uses中加入对ShellApi的引用If ShellExeCute(Application。
Handle,′Open′,′Reg。bat′,′′, PChar(AppPath), SW_HIDE) $#@60;= 32 ? then ? Showmessage(′导入注册表文件信息失败′);finallyFreeMem(SysDir);end;end;上述代码调用了一字符串处理函数InsertSplash,用于将路径字符串中所有的′′处理为′′;这样做是必需的,否则,上述注册信息DRIVER和DBQ项无。
4.vb中数据库内容输出到excel如何把表格第一行合并添加一个大标题
1.
合并A1:H1后添加《ABCDE》标题(可更改);
Range("A1:H1").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("A1:H1").Select
ActiveCell.FormulaR1C1 = "ABCDEFG"
Range("A2").Select
2.如果是VB编码中生成的数据库字段名,要在编码中更改。
3.要每页都打印标题行,需要在“视图”,“页眉页脚”,“工作表”,“顶端标题行中设定。
5.VB 将EXCEL数据导入到Access数据库中
Dim excel_app As Object Dim excel_sheet As Object Dim db As Database Dim AccessPath As String, AccessTable As String Dim sql As String Dim frm As New frmMessage Dim msg As String ADOsdb.BeginTrans ' With ADOsdb ' If .State <> adStateOpen Then ' .CursorLocation = adUseClient ' .ConnectionString = gsOdbcName ' .Open ' End If ' End With With dlgCommonDialog .DialogTitle = "打开" .CancelError = False 'ToDo: 设置 common dialog 控件的标志和属性 .Filter = "Excel文件 (*.xls) |*.xls" .ShowOpen If Len(.FileName) = 0 Then Exit Sub End If sfile = .FileName End With AccessPath = lcspath & "\db.mdb" '数据库路径 excelpath = sfile '电子表格路经 AccessTable = "db" '数据库内表格 msg = Trim(InputBox("请输入表名,如sheet1或sheet2:", "工作表", "sheet1")) ' msg = Str(msg) sheet = msg '电子表格内工作表 Set db = OpenDatabase(excelpath, True, False, "Excel 8.0") '打开电子表格文件 sql = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "$]") ' sql = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "]") If sheet = "" Then MsgBox "您选择的EXCEL表不存在,请重新导入!", vbInformation, "抱歉!" Exit Sub End If If deltable = 1 Then With ADOsdb .Execute "drop table db", , adCmdText End With End If ADOsdb.CommitTrans db.Execute (sql) '将电子表格导入数据库 ShowMessage "正在导入EXCEL表,请您稍等。
" Timer1.Enabled = True。
