首页 > 其他分享 >ado

ado

时间:2024-09-03 20:26:22浏览次数:8  
标签:arr Set arrA sql ado conn1 conn

Function sql_to_sht(sql, sht, Optional ByVal rng = "a1")

    sht.Range(rng).CurrentRegion.ClearContents

    For Each piv In sht.PivotTables
        piv.PivotSelect "", xlDataAndLabel, True
        Selection.ClearContents
    Next
'
'    sht.Cells.Clear
    Set conn1 = sql_ado(sql)
    cols = table_col(sql)
    width_num = conn1.Fields.Count
    
    With sht.Range(rng)
    '    表头
        .Resize(1, width_num) = cols
        .Resize(1, width_num).Interior.Color = 12566463 '单元格颜色
        
    '    内容
        .Offset(1, 0).CopyFromRecordset conn1
        
'        边框
        .CurrentRegion.Borders.LineStyle = xlContinuous
        
        .CurrentRegion.HorizontalAlignment = xlCenter '横向居中
        .CurrentRegion.VerticalAlignment = xlCenter '纵向居中
        
    
    End With
    conn1.Close
    
    Set conn1 = Nothing
    
    For Each xx In ThisWorkbook.Connections
        xx.Delete
    Next
    
End Function


Private Function table_col(sql)
    Dim arr_col
    Set result = sql_ado(sql)
    abc = result.Fields().Count
    ReDim arr_col(abc - 1)
    For y = 0 To abc - 1
        arr_col(y) = result.Fields(y).Name
    Next
    table_col = arr_col
End Function

Private Function sql_ado(sql)
    Dim conn As Object
    Dim conn_result As Object
    Dim arr_conn, arr2, arr3
    
    Set conn = CreateObject("ADODB.Connection")
    Set conn_result = CreateObject("adodb.recordset")
    
    conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""excel 12.0;HDR=YES"""
    Set sql_ado = conn.Execute(sql)

    Set conn = Nothing
    Set conn_result = Nothing
    
    For Each xx In ThisWorkbook.Connections
        xx.Delete
    Next
End Function


Function sql_to_arr(sql, Optional ByVal flag As String = "-_")

    Dim arr2, arre
    Set conn1 = sql_ado(sql)
    
    If flag = "-_" Then
        arr_conn = conn1.getrows()
    Else
        arr2 = Array()
        arr3 = Split(flag, "_")
        ReDim arr2(UBound(arr3))
        For z = LBound(arr2) To UBound(arr2)
            arr2(z) = arr3(z)
        Next
        
        arr_conn = conn1.getrows(, , arr2)
    End If
    
    conn1.movefirst
    sql_to_arr = TransposeArray(arr_conn)
    
    Set conn1 = Nothing
    Set arr_conn = Nothing
    
    
End Function

Private Function TransposeArray(arrA)
    Dim aRes()
    If IsArray(arrA) Then
        ReDim aRes(LBound(arrA, 2) To UBound(arrA, 2), LBound(arrA, 1) To UBound(arrA, 1))
        For i = LBound(arrA, 1) To UBound(arrA, 1)
            For j = LBound(arrA, 2) To UBound(arrA, 2)
                aRes(j, i) = arrA(i, j)
            Next
        Next
    Else
    
    End If
    
    TransposeArray = aRes
End Function

  

标签:arr,Set,arrA,sql,ado,conn1,conn
From: https://www.cnblogs.com/szd001/p/18395395

相关文章

  • Adobe Illustrator (AI)2024完整版WIN/MAC中文软件免费下载安装和快捷键的使用
    目录一、软件概述1.1定义与用途1.2矢量与位图的区别1.3主要功能特点二、安装步骤2.1准备工作2.2安装过程2.3安装后设置三、常用快捷键3.1文件与视图3.2选择与编辑3.3绘图与变换一、软件概述1.1定义与用途AdobeAI是一款由AdobeSystems开发的专业......
  • 探索 Adobe Acrobat Reader 的高级功能
    AdobeAcrobatReader是一款流行的PDF阅读器,不仅仅用于查看PDF文件,它还提供了许多强大的高级功能,能够帮助用户更高效地处理文档。本文将详细介绍AdobeAcrobatReader的高级功能,并通过实际操作案例来增强阅读体验。1.AdobeAcrobatReader简介AdobeAcrobatReader......
  • Python大数据之Hadoop学习——day07_Hive分区表和分桶表
    目录一.分区表一级分区多级分区分区操作hadoop_hive文档二.分桶表基础分桶表:分桶表排序:分区表和分桶表区别一.分区表分区表特点:需要产生分区目录,查询的时候使用分区字段筛选数据,避免全表扫描,替身查询效率 效率上:如果分区表,在查询数据的时候没有分区字段去筛......
  • springboot基于Hadoop的物品租赁系统的设计与实现
    指南......
  • 一个练习项目,好玩的bbs-python-tornado
    代码:importos.pathimporttornado.httpserverimporttornado.webimporttornado.optionsimporttornado.ioloopfromtornado.optionsimportdefine,optionsimportMySQLdbimportjsonimporthashlibimportrandomimportmathimportosfromdatetimeimportda......
  • Adobe Premiere Pro 2023 激活版下载安装教程
    前言AdobePremierePro(简称PR)是一款知名的专业视频编辑软件,数字视频剪辑软件。主要用来编辑视频和音频,可以在RGB和YUV色彩空间中以高达32位色彩的视频分辨率对4K和更高质量的视频文件进行编辑,支持VST音频插件和音轨5.1环绕声,支持沉浸式360/VR视频,基于非线性编辑的软件。Premiere......
  • Lecture 04 Real-time Shadows 2
    Lecture04Real-timeShadows2PCFandPCSSPCF背后的数学知识Filter/convolution:如果对某个函数\(f\)做卷积,可以用\([\omega*f](p)=\underset{q\in\Nu(p)}{\sum}w(p,q)f(q)\)比如PCSS中对某一点q周围区域做卷积求visibility\(V(x)=\underset{q\in\Nu(p)}{\sum}w......
  • Lecture 03 Real-time Shadows 1
    Real-timeShadows1Recap:shadowmappingShadowMapping2-PassAlgorithmThelightpassgeneratestheshadowmapthecamerapassusestheshadowmapAnimage-spacealgorithm好处:无需场景中的几何信息坏处:导致自遮挡和走样问题PassPass1:Renderfrom......
  • 前端必知必会-CSS阴影效果Shadow
    文章目录CSS阴影效果CSS文本阴影多个阴影CSSbox-shadow属性卡片总结CSS阴影效果使用CSS,您可以为文本和元素添加阴影。CSS文本阴影CSStext-shadow属性将阴影应用于文本。最简单的用法是,您只指定水平阴影(2px)和垂直阴影(2px):示例h1{text-shado......
  • 大数据处理从零开始————1.Hadoop介绍
    1.大数据时代背景1.1大数据时代到来    在微信上,随手点的一个赞;在百度上,随手输入的搜素关键词;在健康记录应用上,每天所产生的微信步数这些都是数据。我们每人每天都在产生大量数据。人类近些年所产生的数据比过去几千年所产生数据多得多,所以如何让这些储存数据,如何......