精华内容
下载资源
问答
  • 学生课程表查询(VB6.0代码编写) 学生课程表查询和access数据库建立连接,显示一周内的日期。你可以打开数据库进行修改。 QQ223857666勾月
  • select case用法课程表查询系统,VB6.0源代码
  • VB实现超高速双向链表,非常高效的列表操作,1亿次列表数据添加仅需100毫秒以内。源代码关键字:  链表头、链表数据区、分配,清除内存、记录链表大小,链头,链尾、申请内存、设置表头数据、添加一个项,可指定...
  • 用datagrid控件,下面是一篇控件使用方法,你可以看看使用 DataGrid 控件DataGrid 控件是一种类似于电子数据的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个...

    用datagrid控件,下面是一篇控件使用方法,你可以看看使用 DataGrid 控件DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid 控件的 DataSource 属性后,就会用数据源的记录集来自动填充该控件,以及自动设置该控件的列标头。然后您就可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。

    在运行时,可以在程序中切换 DataSource 来察看不同的表,或者可以修改当前数据库的查询,以返回一个不同的记录集合。

    注意 DataGrid 控件与 Visual Basic 5.0中的 DBGrid 是代码兼容的,除了一个例外:DataGrid 控件不支持 DBGrid 的“解除绑定模式”概念。DBGrid 控件包括在 Visual Basic 的 Tools 目录中。可能的用法

    查看和编辑在远程或本地数据库中的数据。

    与另一个数据绑定的控件(诸如 DataList 控件)联合使用,使用 DataGrid控件来显示一个表的记录,这个表通过一个公共字段链接到由第二个数据绑定控件所显示的表。使用 DataGrid 控件的设计时特性

    可以不编写任何代码,只通过使用 DataGrid 控件的设计时特性来创建一个数据库应用程序。下面的说明概要地说明了在实现 DataGrid 控件的典型应用时的一般步骤。完整的循序渐进的指示,请参阅主题“DataGrid 方案1: 使用 DataGrid 控件创建一个简单数据库应用程序”。

    要在设计时实现一个 DataGrid 控件

    1. 为要访问的数据库创建一个 Microsoft 数据链接 (.MDL) 文件。请参阅“创建 Northwind OLE DB 数据链接”主题,以获得一个示例。

    2. 在窗体上放置一个 ADO Data 控件,并将其 ConnectionString 属性设置为在第 1 步中所创建的OLE DB 数据源。

    3. 在这个 Ado Data 控件的 RecordSource 属性中输入一条将返回一个记

    录集的 SQL 语句。例如,Select * From MyTableName Where CustID = 12

    4. 在窗体上放置一个 DataGrid 控件,并将其 DataSource 属性设置为这个 ADO Data 控件。

    5. 右键单击该 DataGrid 控件,然后单击“检索字段”。

    6. 右键单击该 DataGrid 控件,然后单击“编辑”。

    7. 重新设置该网格的大小、删除或添加网格的列。

    8. 右键单击该 DataGrid 控件,然后单击“属性”。

    9. 使用“属性页”对话框来设置该控件的适当的属性,将该网格配置为所需的外观和行为。在运行时更改显示的数据

    在创建了一个使用设计时特性的网格后,也可以在运行时动态地更改该网格的数据源。下面介绍实现这一功能的通常方法。更改 DataSource 的RecordSource

    更改所显示的数据的最通常方法是改变该 DataSource 的查询。例如,如果DataGrid 控件使用一个ADO Data控件作为其 DataSource,则重写RecordSource和刷新该ADO Data 控件都将改变所显示的数据。

    ' ADO Data 控件连接的是 Northwind 数据库的' Products 表。新查询查找所有

    ' SupplierID = 12 的记录。

    Dim strQuery As String

    strQuery = "SELECT * FROM Suppliers WHERE SupplierID = 12"

    Adodc1.RecordSource = strQuery

    Adodc1.Refresh更改 DataSource

    在运行时,可以将 DataSource 属性重新设置为一个不同的数据源。例如,您可能具有若干个 ADO Data 控件,每个控件连接不同的数据库,或设置为不同的 RecordSource 属性。可以简单地将 DataSource 从一个 ADO Data控件重新设置为另一个 ADO Data 控件:

    ' 将 DataSource 重新设置为一个连接到 Pubs 数据库的、

    ' 使用 Authors 表的 ADO Data 控件。

    Set DataGrid1.DataSource = adoPubsAuthors重新绑定 DataSource

    当将 DataGrid 控件用于一个远程数据库,诸如 SQLServer 时,可以改变表的结构。例如,可以给这个表添加一个字段。在这种情形下,可以调用Rebind 方法根据新的结构来重新创建该网格。注意,如果已经在设计时改变了这个列的布局,DataGrid 控件将会试图重新创建当前的布局,包括任何空的列。不过,通过首先调用 ClearFields 方法,可以强制该网格重新设置所有的列。从 DataGrid 返回值

    在 DataGrid 被连接到一个数据库后,可能想要监视用户单击了哪一个单元。可以使用 RowColChange 事件——而不是 Click 事件。如下所示:

    Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

    ' 显示用户所单击的单元的文字、行和列的信息。

    Debug.Print DataGrid1.Text; DataGrid1.Row; DataGrid1.Col

    End Sub使用 CellText 和 CellValue 方法

    当一个列使用 NumberFormat 属性设置格式后,CellText 和 CellValue 属性是很有用的。NumberFormat 属性不必更改实际的数据格式就可以更改任何包含数字的列的格式。例如,给定一个网格,其中包含一个名为 ProductID的、包含整数的列。下面的代码将使 DataGrid 以"P-0000" 的格式来显示数据。换句话说,尽管在 ProductID 字段中所包含的实际数值为 "3",但该网格所显示的值将是 "P-0003"。

    Private Sub Form_Load()

    DataGrid1.Columns("ProductID").NumberFormat = "P-0000"

    End Sub

    要返回数据库中所包含的实际值,应使用 CellValue 方法,如下所示:

    Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

    Debug.Print _

    DataGrid1.Columns("ProductID").CellValue(DataGrid1.Bookmark)

    End Sub

    注意 上面所用的 CellValue 和下面所用的 CellText 值,都需要将Bookmark 属性作为一个参数,功能才正确。

    相反地,如果要返回该字段的格式化的值,应使用 CellText 方法:

    Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

    Debug.Print _

    DataGrid1.Columns("ProductID").CellText(DataGrid1.Bookmark)

    End Sub

    注意 上面的 CellText 方法等价于使用 DataGrid 控件的 Text 属性。下一步

    要阅读关于使用该控件创建简单的应用程序的一个循序渐进的过程,请参阅“使用 DataGrid 控件创建简单的数据库应用程序”,或“创建一个连接DataList 控件的 DataGrid”。

    要了解关于 Split 对象以及如何对其编程的详细信息,请参阅“操作DataGrid 视图”。

    本文来自-编程入门网: http://www.bianceng.cn/Programming/vb/200705/550.htm

    展开全文
  • 课表查询系统 三、设计任务 (1)要求用VisualBasic6.0提供的系统函数和标准控件完成设计; (2)从列表框中选择“年级、专业、日期”的信息后,显示该班级在当日所对应的课程。 (3)在设计程序的过程中,要求...
  • 学生课程表查询和access数据库建立连接,显示一周内的日期。你可以打开数据库进行修改。(VB6.0源代码编写)
  • BOM表查询VB实现方法

    千次阅读 2005-04-14 16:20:00
    VB代码实现方法引用:无,部件:无设计:在Form1中右下角加入一个CommandButton,名称默认为Command1,窗体的AutoRedraw属性设为True窗体文件一:Form1Option ExplicitPrivate mBom As Collection 这是入口的集合...

    相关需求及信息请点击这里查看。

    用VB代码实现方法

    引用:无,部件:无

    设计:在Form1中右下角加入一个CommandButton,名称默认为Command1,窗体的AutoRedraw属性设为True

    窗体文件一:Form1

    Option Explicit

    Private mBom As Collection              '这是入口的集合
    Private mBomReturn As Collection        '这是出口的集合,未经处理
    Private mBomReturnLast As Collection    '这是出口的集合,经过处理


    Private Sub AddBomRecord()
    '在这里往mBom加入数据库里面的原内容,为求简便,我不想连接数据库
    '直接往里面写入记录了,如果需要,你就直接连接数据库,分析一下里面的
    '代码,然后再往mBom里面写入记录
    'FG      SA1     2.0000
    'FG      SA2     3.0000
    'SA1     PT1     4.0000
    'SA1     PT2     5.0000
    'SA2     PT1     6.0000
    'SA2     PT3     7.0000

    Dim mBomValue As cBomValue

    Set mBomValue = New cBomValue

    mBomValue.AssBom = "FG"
    mBomValue.BomPoint = "SA1"
    mBomValue.Quantity = 2

    mBom.Add mBomValue

    Set mBomValue = New cBomValue

    mBomValue.AssBom = "FG"
    mBomValue.BomPoint = "SA2"
    mBomValue.Quantity = 3

    mBom.Add mBomValue

    Set mBomValue = New cBomValue

    mBomValue.AssBom = "SA1"
    mBomValue.BomPoint = "PT1"
    mBomValue.Quantity = 4

    mBom.Add mBomValue

    Set mBomValue = New cBomValue

    mBomValue.AssBom = "SA1"
    mBomValue.BomPoint = "PT2"
    mBomValue.Quantity = 5

    mBom.Add mBomValue

    Set mBomValue = New cBomValue

    mBomValue.AssBom = "SA2"
    mBomValue.BomPoint = "PT1"
    mBomValue.Quantity = 6

    mBom.Add mBomValue

    Set mBomValue = New cBomValue

    mBomValue.AssBom = "SA2"
    mBomValue.BomPoint = "PT3"
    mBomValue.Quantity = 7

    mBom.Add mBomValue

    End Sub

    Private Sub Command1_Click()

    Dim i As Integer
    Dim m As cBomValue

    '进行计算

    '注意以下两个新建实例,必须放置于GetBomList前,该操作也有清空现有数据的作用,否则会造成错误
    '即第一次运行后保存了数据于该两个变量中,并未清除相关记录,而下一次运行则在现有的基础上再进行加操作,因此数据错误了。

    Set mBomReturn = New Collection
    Set mBomReturnLast = New Collection

    Call GetBomList

    '计算后,mBomReturnLast返回的就是最终结果
    If mBomReturnLast.Count < 0 Then
        MsgBox "没有记录!", vbInformation + vbOKOnly, "BOM表计算"
        Exit Sub
    Else

        '在窗体中打印出列表的内容
        Me.Cls
       
        Print "Assbom" & vbTab & "Point" & vbTab & "Quantity"
       
        For i = 1 To mBomReturnLast.Count
            Set m = mBomReturnLast.Item(i)
           
            Print m.AssBom & vbTab & m.BomPoint & vbTab & m.Quantity
        Next i
    End If


    End Sub

    Private Sub Form_Load()

    '窗体调用处新建实例,然后再装入数据

    Set mBom = New Collection

    AddBomRecord

    End Sub

    '***************************************************************
    '*
    '*  以下为进行计算部分的代码,注意Collection里面的处理
    '*
    '***************************************************************


    Private Sub GetBomList()
        Dim mBomTop As Collection       '这里保存了顶级产成品
        Dim i As Integer
        Dim j As Integer
        Dim m As cBomReturnValue
        Dim mLast As cBomValue
        Dim bFind As Boolean
       
       
       
        Set mBomTop = New Collection
       
       
        '装入顶级产成品
       
        LoadBomTop mBomTop
       
        '对顶级产品进行下级的判断
       
        For i = 1 To mBomTop.Count
            '最后一个参数为1,表示一个单位的产成品
            Call CalcNextBom(mBomTop.Item(i), mBomTop.Item(i), "1")
        Next i
       
       
        '最终得以mBomReturn,这里面已初步形成了结果了
       
        '再进行表达式计算,得到的值返回到mBomReturnLast中,注:mBomReturnLast这个集合加入cBomValue内容
       
       
        For i = 1 To mBomReturn.Count
            '处理一下最终结果,如果没有在Collection里面发现相同的AssBom及BomPoint,则新增加一个,如果已发现,仅只是数量相加
            Set m = mBomReturn(i)
           
            '查找是否已加入
            bFind = False
            For j = 1 To mBomReturnLast.Count
                Set mLast = mBomReturnLast(j)
               
                If Trim(mLast.AssBom) = Trim(m.AssBom) And Trim(mLast.BomPoint) = Trim(m.BomPoint) Then
                    '如果发现有相同的,则加入相关数字
                    mLast.Quantity = mLast.Quantity + CalcExpression(m.Expression)
                    bFind = True
                End If
               
            Next j
           
            If bFind = False Then
                '如果没有找到
                Set mLast = New cBomValue
                mLast.AssBom = Trim(m.AssBom)
                mLast.BomPoint = Trim(m.BomPoint)
                mLast.Quantity = CalcExpression(Trim(m.Expression))
               
                mBomReturnLast.Add mLast
               
            End If
        Next i
       
        '所有操作完毕
    End Sub

    Private Sub LoadBomTop(ByRef BomTop As Collection)
        '装入顶级产成品,并返回到BomTop中
        '即存储过程中GetBomList中的第一个游标的创建@bomTop
       
        Dim i As Integer
        Dim j As Integer
        Dim n As Integer
       
       
        Dim bMark As Boolean    '这只是一个标识符,表明是否发现非顶级
        Dim bMarkAdd As Boolean '用于判断是否已加入到BomTop中的标识
       
       
        '判断方法,如果AssBom不在BomPoint中,那就是顶级了
        Dim sBomAssBom As String
       
        For i = 1 To mBom.Count
            sBomAssBom = Trim(mBom.Item(i).AssBom)
           
            '再进行循环
            bMark = False
           
            For j = 1 To mBom.Count
                If sBomAssBom = Trim(mBom.Item(j).BomPoint) Then
                    bMark = True
                End If
            Next j
           
            If bMark = False Then
                '如果没有发现有相同的,则BomTop加入
               
                '加入前需要进行判断是否已加入
               
                For n = 1 To BomTop.Count
                    If BomTop.Item(n) = sBomAssBom Then
                        bMarkAdd = True
                    End If
                Next n
               
                If bMarkAdd = False Then
                    '如果没有加入过,则加入
                    BomTop.Add sBomAssBom
                End If
            End If
        Next i
       
       
    End Sub


    'GetBomTrueList的存储过程用VB来描述
    Private Sub CalcNextBom(sAssBom As String, sAssPoint As String, sExp As String)
        Dim dQuan As Double
        Dim sExpression As String
        Dim sPoint As String
       
        Dim BomTop As String
       
        '创建point_cursor处的游标
        Dim mBomPoint As Collection
       
        Set mBomPoint = New Collection
       
       
        '装入相关的集合
        Call LoadNextPoint(mBomPoint, sAssPoint)
       
        '装入完毕后,再进行判断是否为明细级半成品,如果不是,递归一次本函数,如果是,加入到mBomReturn里面去
       
        Dim i As Integer
        Dim mBomReturnValue As cBomReturnValue
       
        For i = 1 To mBomPoint.Count
            '判断是否为明细级
            If IsDetailPoint(Trim(mBomPoint.Item(i).BomPoint)) = True Then
                '如果是明细级,则加入到cBomReturnValue
                Set mBomReturnValue = New cBomReturnValue
                mBomReturnValue.AssBom = Trim(sAssBom)
                mBomReturnValue.BomPoint = Trim(mBomPoint.Item(i).BomPoint)
                '构建表达式
                mBomReturnValue.Expression = sExp & "*" & Trim(CStr(mBomPoint.Item(i).Quantity))
               
                mBomReturnValue.Quantity = mBomPoint.Item(i).Quantity
               
               
                '加入
                mBomReturn.Add mBomReturnValue
           
            Else
               
                '如果不是明细项,则再次递归,注意传入的第一个参数,总是顶级Bom,仅作标识符用
                Call CalcNextBom(sAssBom, Trim(mBomPoint.Item(i).BomPoint), sExp & "*" & Trim(CStr(mBomPoint.Item(i).Quantity)))
            End If
               
        Next i
       
       
           
    End Sub

    Private Sub LoadNextPoint(ByRef BomPoint As Collection, ByVal PointName As String)
    '相当于GetBomTrueList中的游标中的select distinct point,sl from te where Assbom = @pointName

        Dim i As Integer
        Dim j As Integer
       
        Dim bMark As Boolean
        Dim mPointValue As cPointValue
                       
        For i = 1 To mBom.Count
            bMark = False
            If Trim(mBom.Item(i).AssBom) = Trim(PointName) Then
                '判断是否已加入
                For j = 1 To BomPoint.Count
                    If Trim(BomPoint.Item(j).BomPoint) = Trim(mBom.Item(i).BomPoint) And BomPoint.Item(j).Quantity = mBom.Item(i).Quantity Then
                        bMark = True
                    End If
                Next j
                If bMark = False Then
                    '表示没有加入
                    Set mPointValue = New cPointValue
                    mPointValue.BomPoint = Trim(mBom.Item(i).BomPoint)
                    mPointValue.Quantity = mBom.Item(i).Quantity
                    BomPoint.Add mPointValue
                End If

            End If
        Next i
       
       

    End Sub

    Private Function IsDetailPoint(ByVal PointName As String) As Boolean
    '判断是否为底级半成品

        '只需要判断PointName不在mBom的AssBom项中即可
       
        Dim i As Integer
       
        For i = 1 To mBom.Count
            If Trim(mBom.Item(i).AssBom) = Trim(PointName) Then
                '如果找到了,直接返回False,并退出函数
                IsDetailPoint = False
                Exit Function
            End If
        Next i
       
        '如果到了这里还没有找到,那么就肯定是底级了
        IsDetailPoint = True
    End Function

    Public Function CalcExpression(strExp As String) As Double
    '计算处理中的表达式,注意,只有乘法


    Dim sItemExp() As String

    Dim dReturnValue As Double
    Dim iIndex As Integer

    sItemExp = Split(Trim(strExp), "*")


    If UBound(sItemExp) < 0 Then
        CalcExpression = 0
    Else

        dReturnValue = 1
        For iIndex = 0 To UBound(sItemExp)
            If Trim(sItemExp(iIndex)) = "" Then
                sItemExp(iIndex) = 0
            End If
           
           
            dReturnValue = dReturnValue * CDbl(sItemExp(iIndex))
        Next iIndex
       
        CalcExpression = dReturnValue
       


    End If

    End Function

    类模块一:类名:cBomReturnValue

    Option Explicit

    '保持属性值的局部变量
    Private mvarAssBom As String '局部复制
    Private mvarBomPoint As String '局部复制
    Private mvarQuantity As Double '局部复制
    Private mvarExpression As String '局部复制
    Public Property Let Expression(ByVal vData As String)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.Expression = 5
        mvarExpression = vData
    End Property


    Public Property Get Expression() As String
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.Expression
        Expression = mvarExpression
    End Property

    Public Property Let Quantity(ByVal vData As Double)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.Quantity = 5
        mvarQuantity = vData
    End Property


    Public Property Get Quantity() As Double
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.Quantity
        Quantity = mvarQuantity
    End Property

    Public Property Let BomPoint(ByVal vData As String)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.BomPoint = 5
        mvarBomPoint = vData
    End Property


    Public Property Get BomPoint() As String
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.BomPoint
        BomPoint = mvarBomPoint
    End Property

    Public Property Let AssBom(ByVal vData As String)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.AssBom = 5
        mvarAssBom = vData
    End Property


    Public Property Get AssBom() As String
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.AssBom
        AssBom = mvarAssBom
    End Property

    类模块二:类名:cBomValue

    Option Explicit

    '保持属性值的局部变量
    Private mvarAssBom As String '局部复制
    Private mvarBomPoint As String '局部复制
    Private mvarQuantity As Double '局部复制
    Public Property Let Quantity(ByVal vData As Double)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.Quantity = 5
        mvarQuantity = vData
    End Property


    Public Property Get Quantity() As Double
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.Quantity
        Quantity = mvarQuantity
    End Property

    Public Property Let BomPoint(ByVal vData As String)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.BomPoint = 5
        mvarBomPoint = vData
    End Property


    Public Property Get BomPoint() As String
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.BomPoint
        BomPoint = mvarBomPoint
    End Property

    Public Property Let AssBom(ByVal vData As String)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.AssBom = 5
        mvarAssBom = vData
    End Property


    Public Property Get AssBom() As String
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.AssBom
        AssBom = mvarAssBom
    End Property

    类模块三:类名:cPointValue

    Option Explicit

    '保持属性值的局部变量
    Private mvarBomPoint As String '局部复制
    Private mvarQuantity As Double '局部复制
    Public Property Let Quantity(ByVal vData As Double)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.Quantity = 5
        mvarQuantity = vData
    End Property


    Public Property Get Quantity() As Double
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.Quantity
        Quantity = mvarQuantity
    End Property


    Public Property Let BomPoint(ByVal vData As String)
    '向属性指派值时使用,位于赋值语句的左边。
    'Syntax: X.BomPoint = 5
        mvarBomPoint = vData
    End Property


    Public Property Get BomPoint() As String
    '检索属性值时使用,位于赋值语句的右边。
    'Syntax: Debug.Print X.BomPoint
        BomPoint = mvarBomPoint
    End Property

    加入后可直接在窗体中Print出列表。

    展开全文
  • VB.net代码生成器

    热门讨论 2011-08-26 11:15:36
    主要实现在对应数据库中的基类代码的自动生成,包括生成属性、添加、修改、删除、查询、存在性、Model类构造等基础代码片断,支持不同3种架构代码生成,使程序员可以节省大量机械录入的时间和重复劳动,而将精力...
  • VB ADODB 对某记录更新或修改记录、VB ADODB 二sql查询排序、VB ADODB 二联合查询VB ADODB 二次打开数据库(二)
  • VB课程设计(代码

    2020-01-06 11:43:59
    本资源为VB课设的贪吃蛇。还有其他的课设资料: 1.10以内加法 2.RTF编辑器 3.vb程序设计1 4.VB编译器 5.vb课程设计 6.VB课程设计合集 7.三子棋 8.交通c063 9.儿童学艺 10.儿童学艺1 11.儿童认 12.儿童...
  • 但是到了学生充值记录查看和学生上机记录查询者两个窗体时就遇到了问题,首先是查询按钮,没有预先将MSFlexGrid清空,导致查询数据时会出现重复的现象。然后是导出Excel。这个是以前没有接触过的,所以在查了很...

         在搞清楚各窗体与各表关系之后,敲的几个窗体都是很简单的,没有遇到什么大问题,自己通过调试代码就可以解决。但是到了学生充值记录查看和学生上机记录查询者两个窗体时就遇到了问题,首先是查询按钮,没有预先将MSFlexGrid表清空,导致查询数据时会出现重复的现象。然后是导出Excel表。这个是以前没有接触过的,所以在查了很多资料和看了同学的博客之后总结出三种方法:

           一、是直接编写代码

             首先从工程部件里引用Microsoft Excel 14.0 Object Library

           导出数据到excel表中代码如下:

    Private Sub cmdOutdataToExcel_Click()

       Dim i As Integer                             '定义行循环变量

       Dim j As Integer                             '定义列循环变量

       Dim xlApp As Excel.Application     '定义类,用来创建excel实例化对象

       Dim xlBook As Excel.Workbook       '定义一个工作薄

       Dim xlSheet As Excel.Worksheet     '定义一个工作表

      

       '首先判断myFlexGrid表中是否有数据存在可供导出

       If Trim(myFlexGrid.TextMatrix(0, 0)) ="" Then

          MsgBox "没有数据可导出", vbOKOnly +vbExclamation, "提示"

          Exit Sub

       End If

      

       '开始导出数据到excel表中

                Set xlApp =CreateObject("Excel.Application")  '实例化对象xlApp为一个excel表

       xlApp.Visible = True                            '设置excel对象可见

     

       Set xlBook = xlApp.Workbooks.Add                '添加一个工作薄

       Set xlSheet = xlBook.Worksheets(1)              '打开工作薄中名为1的数据表

      

       For i = 0 To myFlexGrid.Rows - 1                '循环语句显示myFlexGrid表中的数据

            For j = 0 To myFlexGrid.Cols - 1

                myFlexGrid.Row = i

                myFlexGrid.Col = j

                xlSheet.Cells(i + 1, j + 1) =Trim(myFlexGrid.Text)

            Next

       Next

    End Sub

     

     还有一种方法是不用引用Microsoft Excel 14.0 Object Library,只需要在根目录下建立一个空的excel代码如下:

    Private SubcmdExcel_Click()

        Dim i AsInteger
        Dim j As Integer
        myFlexGrid.Redraw = False    '
    关闭表格重画,加快运行速度
        Set xlApp =CreateObject("Excel.Application")  '
    创建EXCEL对象
         '
    打开已经存在的EXCEL工件簿文件
        Set xlBook =xlApp.Workbooks.Open(App.Path & "\
    学生上机记录.xls")
        xlApp.Visible = True '
    设置EXCEL对象可见
         Set xlSheet =xlBook.Worksheets("Sheet1") '
    设置活动工作表

    For i = 0 To myFlexGrid.Rows - 1 '行循环
                For j = 0 To myFlexGrid.Cols- 1 '
    列循环
                     myFlexGrid.Row =i
                   myFlexGrid.Col =j
                  '
    保存到EXCEL                                                                                     xlBook.Worksheets("Sheet1").Cells(i+ 1, j + 1) = myFlexGrid.Text                                                             Next j
        Next I

    myFlexGrid.Redraw = True

    EndSub

     

            上面的方法在敲一个查询窗体时可以实现功能,但是后面发现还有几个窗体需要导出数据excel表中,如果每次都要写这么长的代码就显得有点麻烦,所以有一个简单的方法就是在模块里面定义一个子过程,然后用到导出excel表时调用这个过程可。这样解决了代码的重复利用。节省了存储空间。

            定义模块子过程代码如下:

    '创建一个模块,用来导出FlexGrid表中数据到excel表中

    Public Sub OutDataToexcel(formname As Form, flexgridname As MSFlexGrid)

          Dim TempExcel As Excel.Application   '用来创建一个工作薄

          Dim TempSheet As Excel.Worksheet      '用来创建一个工作表

          Dim intI As Integer                  '设置循环变量

          Dim intJ As Integer

      OnError GoTo Err_Proc

      Set TempExcel = New Excel.Application   '实例化为一个对象

       TempExcel.Application.Visible = True

       TempExcel.Workbooks.Add (1)

      

       Set TempSheet =TempExcel.ActiveWorkbook.ActiveSheet

     

      '对行和列进行循环,将数据填入到表中

       For intI = 0 To flexgridname.Rows - 1            

                For intJ = 0 To flexgridname.Cols -1    

                    TempSheet.Cells(intI + 1, intJ+ 1) = flexgridname.TextMatrix(intI, intJ)        

                Next intJ            

       Next intI

    Err_Proc:

            MsgBox "导出数据失败!",vbExclamation, "提示"

     End Sub

     



     当调用这个过程时,只需要简单的一句代码就可以实现

              Private Sub cmdOutdataToExcel_Click()

                       Call OutDataToexcel(frmCheckSJrecord,myFlexGrid)

              End Sub

    展开全文
  • 正式:各字段内容获取 DECLARE @tabname VARCHAR(20) SET @tabname = 'ppeflow' SELECT @tabname AS '表名' ,(CASE WHEN T.name = 'varchar' or T.name = 'char' THEN T.name + '(' + CAST(COLUMN...

     正式表:各字段内容获取

    DECLARE @tabname VARCHAR(20)
    SET @tabname = 'ppeflow'
    
    SELECT  @tabname AS '表名'
         ,(CASE 
                WHEN T.name = 'varchar' or T.name = 'char' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as  VARCHAR(20))+ ')'
                WHEN T.name = 'numeric' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as  VARCHAR(20)) + ',' +  CAST(isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as  VARCHAR(20)) + ')'
                WHEN T.name = 'decimal' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as  VARCHAR(20)) + ',' +  CAST(isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as  VARCHAR(20)) + ')'
                 ELSE T.name
          END) AS '字段类型与容量' 
         ,C.name as [字段名],T.name as [字段类型]  
         ,convert(bit,C.IsNullable)  as [可否为空]  
         ,convert(bit,case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=c.id and name in (  
             SELECT name FROM sysindexes WHERE indid in(  
                 SELECT indid FROM sysindexkeys WHERE id = c.id AND colid=c.colid))) then 1 else 0 end)   
                     as [是否主键]  
         ,convert(bit,COLUMNPROPERTY(c.id,c.name,'IsIdentity')) as [自动增长]  
         ,C.Length as [占用字节]   
         ,COLUMNPROPERTY(C.id,C.name,'PRECISION') as [长度]  
         ,isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as [小数位数]  
         ,ISNULL(CM.text,'') as [默认值]  
         ,isnull(ETP.value,'') AS [字段描述]  
    
         ,('Property ' + C.name + ' AS ' + 
            CASE T.name
                      WHEN  'varchar' THEN  'String' 
                      WHEN  'nvarchar' THEN  'String' 
                      WHEN  'char' THEN  'String' 
                      WHEN  'numeric' THEN  'Decimal' 
                      WHEN  'decimal' THEN  'Decimal' 
                      WHEN  'datetime' THEN  'DateTime' 
                      WHEN  'int' THEN  'Integer' 
                      WHEN  'smallint' THEN  'Short' 
                      WHEN  'real' THEN  'Single' 
                      WHEN  'float' THEN  'Double'  
                      WHEN  'bit' THEN  'Boolean'  
                      WHEN  'uniqueidentifier' THEN  'Guid'  
            END ) 'VB.net'
    
         ,('public ' +
            CASE T.name
                      WHEN  'varchar' THEN  'string' 
                      WHEN  'nvarchar' THEN  'string' 
                      WHEN  'char' THEN  'string' 
                      WHEN  'numeric' THEN  'decimal' 
                      WHEN  'decimal' THEN  'decimal' 
                      WHEN  'datetime' THEN  'DateTime' 
                      WHEN  'int' THEN  'int' 
                      WHEN  'smallint' THEN  'short' 
                      WHEN  'real' THEN  'float' 
                      WHEN  'float' THEN  'double'  
                      WHEN  'bit' THEN  'bool'  
                      WHEN  'uniqueidentifier' THEN  'Guid'  
            END 
            + ' ' + C.name  + ' { get; set; }') 'C#'
    
    
         --,ROW_NUMBER() OVER (ORDER BY C.name) AS [Row]  
         --,REPLACE(REPLACE(REPLACE('row_T_WF_MAIN("'+c.name+'") = '  +  STUFF(STUFF(isnull(CM.text,''),1,1,''),LEN(STUFF(isnull(CM.text,''),1,1,'')),1,''),'''','"'),'getdate()','Date.Now()'),'newid()','Guid.NewGuid')AS'row'
    FROM syscolumns C  
    INNER JOIN systypes T ON C.xusertype = T.xusertype   
    left JOIN sys.extended_properties ETP   ON  ETP.major_id = c.id AND ETP.minor_id = C.colid AND ETP.name ='MS_Description'   
    left join syscomments CM on C.cdefault=CM.id  
    WHERE C.id = object_id(@tabname)  
    
    --AND convert(bit,C.IsNullable) = 0  --不为空
    --AND ISNULL(CM.text,'') = ''--默认值为空

     正式表:各字段内容获取(加注释,复制到C#中再将###正则替换为\n)

    DECLARE @tabname VARCHAR(200)
    SET @tabname = 'T_RuleTableCell'
    
    
    
    SELECT  @tabname AS '表名'
         ,(CASE 
                WHEN T.name = 'varchar' or T.name = 'char' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as  VARCHAR(20))+ ')'
                WHEN T.name = 'numeric' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as  VARCHAR(20)) + ',' +  CAST(isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as  VARCHAR(20)) + ')'
                WHEN T.name = 'decimal' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as  VARCHAR(20)) + ',' +  CAST(isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as  VARCHAR(20)) + ')'
                 ELSE T.name
          END) AS '字段类型与容量' 
         ,C.name as [字段名],T.name as [字段类型]  
         ,convert(bit,C.IsNullable)  as [可否为空]  
         ,convert(bit,case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=c.id and name in (  
             SELECT name FROM sysindexes WHERE indid in(  
                 SELECT indid FROM sysindexkeys WHERE id = c.id AND colid=c.colid))) then 1 else 0 end)   
                     as [是否主键]  
         ,convert(bit,COLUMNPROPERTY(c.id,c.name,'IsIdentity')) as [自动增长]  
         ,C.Length as [占用字节]   
         ,COLUMNPROPERTY(C.id,C.name,'PRECISION') as [长度]  
         ,isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as [小数位数]  
         ,ISNULL(CM.text,'') as [默认值]  
         ,isnull(ETP.value,'') AS [字段描述]  
    
         ,('Property ' + C.name + ' AS ' + 
            CASE T.name
                      WHEN  'varchar' THEN  'String' 
                      WHEN  'nvarchar' THEN  'String' 
                      WHEN  'char' THEN  'String' 
                      WHEN  'numeric' THEN  'Decimal' 
                      WHEN  'decimal' THEN  'Decimal' 
                      WHEN  'datetime' THEN  'DateTime' 
                      WHEN  'int' THEN  'Integer' 
                      WHEN  'smallint' THEN  'Short' 
                      WHEN  'real' THEN  'Single' 
                      WHEN  'float' THEN  'Double'  
                      WHEN  'bit' THEN  'Boolean'  
                      WHEN  'uniqueidentifier' THEN  'Guid'  
            END ) 'VB.net'
    
         ,( '///<summary>'    + '###' +
           '///'    + CAST(isnull(ETP.value,'') AS VARCHAR(200)) +  '###' + 
           '///</summary>'    + '###' +  
            'public ' +
            CASE T.name
                      WHEN  'varchar' THEN  'string' 
                      WHEN  'nvarchar' THEN  'string' 
                      WHEN  'char' THEN  'string' 
                      WHEN  'numeric' THEN  'decimal' 
                      WHEN  'decimal' THEN  'decimal' 
                      WHEN  'datetime' THEN  'DateTime' 
                      WHEN  'int' THEN  'int' 
                      WHEN  'smallint' THEN  'short' 
                      WHEN  'real' THEN  'float' 
                      WHEN  'float' THEN  'double'  
                      WHEN  'bit' THEN  'bool'  
                      WHEN  'uniqueidentifier' THEN  'Guid'  
            END 
            + ' ' + C.name  + ' { get; set; }') 'C#'
    
    
         --,ROW_NUMBER() OVER (ORDER BY C.name) AS [Row]  
         --,REPLACE(REPLACE(REPLACE('row_T_WF_MAIN("'+c.name+'") = '  +  STUFF(STUFF(isnull(CM.text,''),1,1,''),LEN(STUFF(isnull(CM.text,''),1,1,'')),1,''),'''','"'),'getdate()','Date.Now()'),'newid()','Guid.NewGuid')AS'row'
    FROM syscolumns C  
    INNER JOIN systypes T ON C.xusertype = T.xusertype   
    left JOIN sys.extended_properties ETP   ON  ETP.major_id = c.id AND ETP.minor_id = C.colid AND ETP.name ='MS_Description'   
    left join syscomments CM on C.cdefault=CM.id  
    WHERE C.id = object_id(@tabname)  
    
    --AND convert(bit,C.IsNullable) = 0  --不为空
    --AND ISNULL(CM.text,'') = ''--默认值为空

     

     

     临时表:各字段内容获取

      SELECT  
    
         C.name as [字段名],T.name as [字段类型]  
         ,convert(bit,C.IsNullable)  as [可否为空]  
         ,convert(bit,case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=c.id and name in (  
             SELECT name FROM sysindexes WHERE indid in(  
                 SELECT indid FROM sysindexkeys WHERE id = c.id AND colid=c.colid))) then 1 else 0 end)   
                     as [是否主键]  
         ,convert(bit,COLUMNPROPERTY(c.id,c.name,'IsIdentity')) as [自动增长]  
         ,C.Length as [占用字节]   
         ,COLUMNPROPERTY(C.id,C.name,'PRECISION') as [长度]  
         ,isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as [小数位数]  
         ,ISNULL(CM.text,'') as [默认值]  
         ,isnull(ETP.value,'') AS [字段描述]
         ,('Property ' + C.name + ' AS ' + 
            CASE T.name
                      WHEN  'varchar' THEN  'string' 
                      WHEN  'char' THEN  'string' 
                      WHEN  'numeric' THEN  'Decimal' 
                      WHEN  'decimal' THEN  'Decimal' 
                      WHEN  'datetime' THEN  'DateTime' 
                      WHEN  'int' THEN  'Integer' 
                      WHEN  'real' THEN  'Single' 
                      WHEN  'float' THEN  'Double'  
            END ) 'VB.net'
    
         ,('public ' +
            CASE T.name
                      WHEN  'varchar' THEN  'string' 
                      WHEN  'char' THEN  'string' 
                      WHEN  'numeric' THEN  'decimal' 
                      WHEN  'decimal' THEN  'decimal' 
                      WHEN  'datetime' THEN  'DateTime' 
                      WHEN  'int' THEN  'int' 
                      WHEN  'real' THEN  'float' 
                      WHEN  'float' THEN  'double'  
                      WHEN  'bit' THEN  'bool'  
            END 
            + ' ' + C.name  + ' { get; set; }') 'C#'
         --,ROW_NUMBER() OVER (ORDER BY C.name) AS [Row]  
    FROM tempdb..syscolumns C  
    INNER JOIN systypes T ON C.xusertype = T.xusertype   
    left JOIN sys.extended_properties ETP   ON  ETP.major_id = c.id AND ETP.minor_id = C.colid AND ETP.name ='MS_Description'   
    left join syscomments CM on C.cdefault=CM.id  
    WHERE C.id = object_id('tempdb..#tab2')   

     

    获取内容样式如下:

     

    转载于:https://www.cnblogs.com/pcbren/p/9248282.html

    展开全文
  • 使用VB对VBA开发的窗体进行封装成DLL,窗体作用:根据配置的Excel基础数据,在其他工作中使用模糊查询赋值(当使用 序列 时,如果列表很长时,可以使用该工具)
  • 调用Excel的课程程序本例是先将数据库里的数据查询出来,用MSFlexGrid表格控件显示,然后将它导出'/////先引用execl9.0(VB6.0源代码编写)Dim excelApp As Excel.Workbook
  • 一个recordset对象表示一个或多个数据库中的集合,或者运行一次查询所得的记录结果。 记录集对象有3种类型:类型(DbOpenTable)、动态集类型(DbOpenDynaset)、快照类型(DbOpenSnapshot)Dim DAOmydb1 As ...
  • VB60_导出excel_方法源代码 方法一: 用Msflexgrid的Textmatrix属性取Msflexgrid中每一个单元格的内容,然后填到Excel中,或者写成CSV格式 方法二: 直接把查询结果导出成Excel工作
  • 查看出入库,查询,(产品,缺货),打印缺货 出入库: 6个字段 stock 编号 id 自动编号 合同号 contract 文本 10 (由合同获得) 出入库类型 type 文本 2 (出库/入库) 产品名称 proname 文本 10 (由成品得到) 产品...
  • 从数据库中生成对应的vb/c#实体代码,并提取及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和vb/c#代码类型的映射、实体命名空间、代码个性化注释、是否...
  • 一个具备打印功能的VB报表设计器源代码VB报表打印设计器控件源码及实例,如上图所示,可以用来设计复杂的报表,包括报表标头、页面标头、报表细节、页面页脚部分、报表注脚等,每一部分之间都可以鼠标拖动改变大小...
  • 从数据库中生成对应的VB/C#实体代码,并提取及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否...
  • 从数据库中生成对应的VB/C#实体代码,并提取及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否...
  • 我想接收这个返回值存取后用if条件语句做msgbox,请问如何接收,最好有代码,这样看得懂,查询语句如下 Dim sqlstr1= "select * from 暂住人员信息 where 身份证号码='" & SelectPop.TextBox1.Text & "'" 暂住人员...
  • VB数据库编程技术 3.RecordSource属性 RecordSource确定具体可访问的记录集对象Recordset。 该属性值可以是数据库中的单个表名或者是使用SQL查询语言的一个查询。 例如,指定Student.mdb数据库中的基本情况: ...
  • 从数据库中生成对应的VB/C#实体代码,并提取及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否...
  • 从数据库中生成对应的VB/C#实体代码,并提取及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否...
  • 从数据库中生成对应的VB/C#实体代码,并提取及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否...
  • 从数据库中生成对应的VB/C#实体代码,并提取及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否...
  • 从数据库中生成对应的VB/C#实体代码,并提取及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否...
  • (2) 软件是由后台存储物性数据的Access数据库和前台VB语言编写的查询界面两部分组成的,其中物性数据库的数据源自一个流程模拟软件,经各个物性参数的测试表明该数据库可靠,前台查询界面则是由作者利用VB语言编写...
  • LYAEUO链接操作VB6.0

    2008-12-12 01:45:04
    4、工程名更改为LYAEUO(Linyee ACCESS EXCEL UNION OFFICE),以方便查询调用。 5、增加 按清单更新 功能,用于批量更新指定。更新清单可以用网站的方式生成,也可是外来源或手写。 6、增加对独占的错误捕捉...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 281
精华内容 112
关键字:

vb代码查询表