网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

Excel+ADO(DAO)+SQL+Access专辑(示例)

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员为大家收集整理了Excel+ADO(DAO)+SQL+Access专辑(示例)提供大家参考,希望对大家有所帮助!


    Excel+ADO(DAO)+SQL+Access专辑(示例下载)加入收藏
    网站地图
    网站搜索
    简繁默
    excel资源下载首页excel教程下载专区excel函数、VBA、技巧视频教程excel函数学习资料excel财务会计报表模板
    返回excel论坛VBA学习资料Excel图表专区excel在线学习Excel技巧全接触excel办公常用表格
    Excel在线帮助VBA在线帮助excel2007精华教程Excel电子表格问题解答
    Excel函数应用手册
    excel→VBA学习资料
    阅读新闻
    Excel+ADO(DAO)+SQL+Access专辑(示例下载)
    :实现筛选功能
    
    DimCNNAsNewADODB.Connection定义一个新的ADO对象连接
    
    DimRSTAsNewADODB.Recordset定义一个ADO对象数据集
    DimStpath,strSQLAsString定义路径、查询变量
    
    Stpath=ThisWorkbook.Path&;Application.PathSeparator&;
    "学生档案.mdb"定义路径及文件名
    
    CNN.Open"provider=Microsoft.jet.OLEDB.4.0;datasource="&;Stpath'&;";Jet
    OLEDB:DatabasePassword="&;"123"打开链接:
    provider=Microsoft.jet.OLEDB.4.0是软件提供者为Microsoft.jet.OLEDB.4.0
    datasource="&;Stpath是链接数据源为Stpath
    JetOLEDB:DatabasePassword="&;"123"是如果ACCESS数据库设置有保护密码,此句必不可少
    IfComboBox3.Value=""Then如果性别的框中为空则
    strSQL="Select*from档案WHERE籍贯LIKE'"&;ComboBox2.Value&;
    "'"从档案表中查找籍贯为ComboBox2的记录
    Select*是查找所有符合条件的字段,如果想查找符合条件并显示出具体字段,可以用SELECT字段名1,字段名2....from
    档案是从档案表中查找符合籍贯LIKE'"&;ComboBox2.Value&;"'"的记录
    WHERE后为查找的条件
    ElseIfComboBox2.Value=""Then
    strSQL="Select*from档案WHERE性别LIKE'"&;ComboBox3.Value&;"'"
    Else
    strSQL="Select*from档案WHERE性别LIKE'"&;ComboBox3.Value&;"'"&;"AND
    籍贯LIKE'"&;ComboBox2.Value&;"'"
    EndIf
    以上几句为当选取项目不同时设置不同的查找语句
    RST.OpenstrSQL,CNN打开记录集
    recordset.Open
    Source(来记录来源),
    ActiveConnection(打开的链接)
    
    Sheet1.Range("A2:G100").ClearContentsSheet1.Cells(2,1).CopyFromRecordset
    RST
    CopyFromRecordset方法
    将一个ADO或DAORecordset对象的内容复制到工作表中,复制的起始位置在指定区域的左上角,Sheet1.Cells(2,
    1).CopyFromRecordsetRST为把查找到的记录得制到以Sheet1.Cells(2,1)为顶点的单元格区域中
    RST.Close关闭记录集
    SetRST=Nothing释放对象变量
    SetCNN=Nothing
    2:实现查询功能(ADO+SQL)
    OnError
    GoTo100
    IfTextBox1.Text=""Then
    MsgBox"请输入",1+16,"系统提示"TextBox1.SetFocus
    Else
    DimCNNAsNewADODB.Connection
    DimRSTAsNewADODB.Recordset
    DimStpath,strSQLAsString
    Stpath=ThisWorkbook.Path&;Application.PathSeparator&;"学生档案.mdb"
    CNN.Open"provider=Microsoft.jet.OLEDB.4.0;datasource="&;Stpath'&;";Jet
    OLEDB:DatabasePassword="&;"123"
    strSQL="Select*from档案WHERELIKE'"&;TextBox1.Value&;"'"
    RST.OpenstrSQL,CNN
    TextBox2.Value=RST.Fields("年龄").Value
    TextBox4.Value=RST.Fields("性别").Value
    TextBox5.Value=RST.Fields("籍贯").Value
    RST.Close
    SetRST=Nothing
    SetCNN=Nothing
    EndIf
    ExitSub
    100:MsgBox"找不到符合条件的记录",1+16,"系统提示"
    实现查询功能(DAO)
    OnErrorGoTo100
    IfTextBox1.Text=""Then
    MsgBox"请输入",1+16,"系统提示"
    TextBox1.SetFocus
    Else
    DimRS1AsRecordset
    DimDB1AsDatabase
    SetDB1=OpenDatabase(ThisWorkbook.Path&;"\"&;"学生档案.MDB")
    SetRS1=DB1.OpenRecordset(Name:="档案",Type:=dbOpenDynaset)
    RS1.FindFirst"='"&;TextBox1.Value&;"'"
    IfRS1.NoMatch=TrueThen
    MsgBox"对不起,没有该记录"
    RS1.Close
    ExitSub
    Else
    TextBox2.Value=RS1.Fields("年龄").Value
    TextBox4.Value=RS1.Fields("性别").Value
    TextBox5.Value=RS1.Fields("籍贯").Value
    TextBox6.Value=RS1.Fields("联系电话").Value
    EndIf
    RS1.Close
    SetRS1=Nothing
    SetDB1=Nothing
    EndIf
    ExitSub
    100:MsgBox"找不到符合条件的记录",1+16,"系统提示"
    3:实现数据输入功能(利用DAO)
    代码:
    DimRS1AsRecordset
    DimDB1AsDatabase
    OnErrorGoTo1000
    SetDB1=OpenDatabase(ThisWorkbook.Path&;"\"&;"学生档案.MDB")
    RS1=DB1.OpenRecordset(Name:="档案",Type:=dbOpenDynaset)
    WithRS1.AddNew
    
    .Fields("").Value=Me.TextBox1.Value
    .Fields("年龄").Value=Me.TextBox2.Value
    .Fields("性别").Value=Me.TextBox4.Value
    .Fields("籍贯").Value=Me.TextBox5.Value
    .Fields("联系电话").Value=Me.TextBox6.Value
    .Update
    MsgBox"档案表中增加了一条记录!"
    EndWith
    DB1.Close
    ExitSub
    4:实现修改指定记录功能
    OnErrorGoTo100
    IfTextBox1.Text=""Then
    MsgBox"请输入",1+16,"系统提示"
    TextBox1.SetFocus
    Else
    DimRS1AsRecordset
    DimDB1AsDatabase
    SetDB1=OpenDatabase(ThisWorkbook.Path&;"\"&;"学生档案.MDB")
    SetRS1=DB1.OpenRecordset(Name:="
    档案",Type:=dbOpenDynaset)
    RS1.FindFirst"='"&;TextBox1.Value&;"'"
    RS1.Edit
    RS1.Fields("年龄").Value=TextBox2.Value
    RS1.Fields("性别").Value=TextBox4.Value
    RS1.Fields("籍贯").Value=TextBox5.Value
    RS1.Fields("联系电话").Value=TextBox6.Value
    RS1.Update
    RS1.Close
    SetRS1=Nothing
    SetDB1=Nothing
    EndIf
    ExitSub
    100:MsgBox"找不到符合条件的记录",1+64,"系统提示"
    5:实现删除指定记录功能
    OnErrorGoTo100
    IfTextBox1.Text=""Then
    MsgBox"请输入",1+16,"系统提示"
    TextBox1.SetFocus
    Else
    DimRS1AsRecordset
    DimDB1AsDatabase
    SetDB1=OpenDatabase(ThisWorkbook.Path&;"\"&;"学生档案.MDB")
    SetRS1=DB1.OpenRecordset(Name:="档案",Type:=dbOpenDynaset)
    RS1.FindFirst"='"&;TextBox1.Value&;"'"
    RS1.Delete
    
    RS1.UpdateRS1.Close
    SetRS1=Nothing
    SetDB1=Nothing
    EndIf
    ExitSub
    100:MsgBox"找不到符合条件的记录",1+64,"系统提示"
    6:实现排序功能
    例:查询结果按年龄字段排序
    strSQL="Select*from档案WHERE性别LIKE'"&;ComboBox3.Value&;"'"改为
    升序排列(默认)
    strSQL="Select*from档案WHERE籍贯LIKE'"&;ComboBox3.Value&;"'ORDERBY
    年龄"
    降序排列
    strSQL="Select*from档案WHERE籍贯LIKE'"&;ComboBox2.Value&;"'ORDERBY
    年龄DESC"
    7:实现分类汇总功能
    DimCNNAsNewADODB.Connection
    DimRSTAsNewADODB.Recordset
    DimStpath,strSQLAsString
    Stpath=ThisWorkbook.Path&;Application.PathSeparator&;"学生档案.mdb"
    CNN.Open"provider=Microsoft.jet.OLEDB.4.0;datasource="&;Stpath'&;";Jet
    OLEDB:DatabasePassword="&;"123"
    strSQL="SELECT籍贯,性别,COUNT(性别)FROM档案GROUPBY籍贯,性别"
    
    RST.OpenstrSQL,CNN
    Sheet1.Range("A2:G100").ClearContents
    Sheet1.Cells(2,1).CopyFromRecordsetRST
    RST.Close
    SetRST=Nothing
    SetCNN=Nothing
    
    ADO如何新增/修改/刪除資料庫的資料呢?
    新增資料庫的資料
    首先使用ado連結到Access資料庫ntopsamp.mdb,下SQL指令開啟資料表「產品」的資料,將結果傳回到rs1的recordset當中,ASP程式碼如下:
    Setconn1=Server.CreateObject("ADODB.Connection")
    conn1.Open"DBQ="&;Server.MapPath("ntopsamp.mdb")&;";Driver={MicrosoftAccessDriver(*.mdb)};"
    Setrs1=Server.CreateObject("ADODB.Recordset")
    rs1.Open"產品",conn1,1,3
    使用Addnew方法以新增一筆資料,ASP程式碼如下:
    rs1.Addnew
    
    設定資料表各個欄位的值,您可以使用以下三種語法:
    rs1("欄位名稱").Value=值
    rs1("欄位名稱")=值
    rs1(欄位順序)=值
    譬如說,ASP程式碼如下:
    rs1("名稱").Value="筆記型電腦"
    rs1("數量")=100
    rs1(0)="12345"
    最後下個Update方法,即將新增的資料儲存到資料表當中。
    rs1.Update
    rs1.Close
    Response.Write("增加資料:名稱=筆記型電腦

")
    修改資料庫的資料
    若要修改資料庫的資料,首先使用ado連結到Access資料庫ntopsamp.mdb,下SQL指令尋找待修改的資料,將結果傳回到rs1的recordset當中,ASP程式碼如下:
    Setrs1=Server.CreateObject("ADODB.Recordset")
    sql="SELECT*FROM產品WHERE名稱='筆記型電腦'"
    rs1.Opensql,conn1,1,3,1
    若找到待修改的資料,設定資料表各個欄位的值,最後下個Update方法,即將新增的資料儲存到資料表當中,ASP程式碼如下:
    ifnotrs1.EOFthen
    randomize
    no1=round(rnd()*10)
    new1="筆記型電腦-"&;no1
    rs1("名稱").Value=new1
    rs1.Update
    Response.Write("修改資料成:名稱="&;rs1("名稱")&;"

")
    endif
    刪除資料庫的資料
    若要刪除資料庫的資料,首先使用ado連結到Access資料庫ntopsamp.mdb,下SQL指令尋找待刪除的資料,將結果傳回到rs1的recordset當中,ASP程式碼如下:
    Setrs1=Server.CreateObject("ADODB.Recordset")
    sql="SELECT*FROM產品WHERE名稱='"&;new1&;"'"
    rs1.Opensql,conn1,1,3,1
    若找到待刪除的資料,下個Delete方法,即可刪除資料表中的此筆資料,ASP程式碼如下:
    ifnotrs1.EOFthen
    rs1.Delete
    Response.Write("刪除資料:名稱="&;new1)
    endif
    conn1.Close
    PrivateSubtest()
    DimconAsNewADODB.Connection
    DimrsAsNewADODB.Recordset
    DimsqlAsString
    '连access
    'con.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\db3.mdb;PersistSecurityInfo=False"
    setSql="select*from表名"'SQL查询语句
    rs.OpenSql,con,1,3'后面的3是确定读写权限的
    rs.AddNew'增加一行记录,不用则修改当前记录
    While(Notrs.EOF)
    rs("字段1")="..."'数据读写操作
    rs("字段2")="..."'数据读写操作
    ...
    rs.movenext'移动到下一条记录,增加新记录无需
    rs.UpDate'保存写入资料,如果使用只读权限,则不能使用这个方法
    WEND
    rs.Close'这个方法用来关闭你所代开的表,如果不使用这个方法可造成数据库负担过重或后续操作问题
    con.Close
    Setcon=Nothing
    EndSub赞同0|评论2010-7-216:09蛮王孟不获|二级
    '在你要进行插入操作的事件中插入如下代码,以学生信息表为例'
    DimrsAsNewADODB.Recordset
    DimconnAsNewADODB.Connection
    Setrs=Nothing
    sql="insertinto学生信息表(,,性别,年龄,电话号码,成绩)values('"&;Text1.Text&;"','"&;Text2.Text&;"','"&;Combo1.Text&;"','"&;Combo2.Text&;"','"&;Text4.Text&;"','"&;T
    ext5.Text&;"')"
    conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&;App.Path&;"\数据库名.mdb;PersistSecurityInfo=False"
    rs.Opensql,conn
    MsgBox"插入成功"
    '在你要进行修改操作的事件中插入如下代码'
    DimrsAsNewADODB.Recordset
    DimconnAsNewADODB.Connection
    Setrs=Nothing
    sql="update学生信息表set性别='男'where='"&;Text1.Text&;"'"
    conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&;App.Path&;"\数据库名.mdb;PersistSecurityInfo=False"
    rs.Opensql,conn
    msgbox"修改成功"
    VB如何用ADO向ACCESS数据库插入和修改记录?
    添加:
    ’下面这句连接数据库指定表的所有字段
    Adodc1.RecordSource="select*from库存表"
    ’下面这句添加记录
    Adodc1.Recordset.AddNew
    下面4句就是通过4个TEXTBOX控件输入字段的数据,如果是数字类型可以加VAL
    Adodc1.Recordset.Fields("货物编号")=Text1.Text
    Adodc1.Recordset.Fields("货物名称")=Text2.Text
    Adodc1.Recordset.Fields("库存量")=Text3.Text
    Adodc1.Recordset.Fields("单位")=Text4.Text
    ’下面这个是修改后更新
    Adodc1.Recordset.Update
    修改:
    '通过主键指定要修改的记录
    Adodc1.RecordSource="select*from库存表where货物编号="&;Text1.Text
    Adodc1.Refresh
    Adodc1.Recordset.Fields("货物编号")=Text1.Text
    Adodc1.Recordset.Fields("货物名称")=Text2.Text
    Adodc1.Recordset.Fields("库存量")=Text3.Text
    Adodc1.Recordset.Fields("单位")=Text4.Text
    

  • 上一篇资讯: EXCELvba+SQL
  • 下一篇资讯: Editplus支持SQL语法高亮
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师