我想写数据库,在不使用DATA控件的情况下,实现简单的数据插入、删除和查找功能。并将数据库内容或显示结果在MSFLEXGRID中显示出来,库文件只有两个字段“编号”和“姓名”,查询以姓名查询,并将结果显示在MSFLEXGRID控件中,请问如何实现,特别是这个查询用SQL如何写

解决方案 »

  1.   

    select * from 表 where 姓名 = ?
      

  2.   

    给你一个连接的例子函数Public Function C_LianJie() As Boolean
    On Error GoTo ine
    If conn Is Nothing Then    
       Set conn = New ADODB.Connection
       With conn
            .Provider = "SQLOLEDB"     
           .CommandTimeout = 10
            .ConnectionTimeout = 10
            .IsolationLevel = adXactReadCommitted
       End With
    End If
    If conn.State = adStateClosed Then       
       conn.Open "server=shiqiang;database=aaa;", "sa", ""
    End If
    GoTo inerr
    ine:
       MsgBox Err.Description, , "
    inerr:
    End Function
      

  3.   

    添加数据库
    Public Function C_Insert(ByVal C_Sql As String)
    On Error GoTo ine
    Dim C_Temp As String
    sqlinsert = ""
    '这里写你的SQL语句
    sqlinsert = "insert into " & C_TabelName & " values('" & C_Text & "',"
    conn.Execute (sqlinsert)
    C_Temp = ""
    C_Temp = "Ìí¼Ó " & C_TabelName & " '" & C_Text & "' ³É¹¦¡£"
    MsgBox C_Temp, , "Óû§ÐÅÏ¢"
    GoTo inerr
    ine:
       C_Temp = ""
       C_Temp = "Ìí¼Ó " & C_TabelName & " Ê§°Ü¡£´íÎó£º" & Err.Description & "¡£"
       MsgBox C_Temp, , "´íÎóÐÅÏ¢"
    inerr:
    End Function就是类似这样的吧
    你可以查查CSDN以前的帖子有很多
      

  4.   

    添加数据库
    Public Function C_Insert(ByVal C_Sql As String)
    On Error GoTo ine
    Dim C_Temp As String
    sqlinsert = ""
    '这里写你的SQL语句
    sqlinsert = "insert into " & C_TabelName & " values('" & C_Text & "',"
    conn.Execute (sqlinsert)
    C_Temp = ""
    C_Temp = "Ìí¼Ó " & C_TabelName & " '" & C_Text & "' ³É¹¦¡£"
    MsgBox C_Temp, , "Óû§ÐÅÏ¢"
    GoTo inerr
    ine:
       C_Temp = ""
       C_Temp = "Ìí¼Ó " & C_TabelName & " Ê§°Ü¡£´íÎó£º" & Err.Description & "¡£"
       MsgBox C_Temp, , "´íÎóÐÅÏ¢"
    inerr:
    End Function就是类似这样的吧
    你可以查查CSDN以前的帖子有很多
      

  5.   

    我目的是使用Set db = Workspaces(0).OpenDatabase(App.Path & "\grx.mdb")
    接下来如何向操作数据库,比如添加记录,删除和查询记录,请给详细的说明,谢谢,有了答案马上给分
      

  6.   

    Dim cn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        
        cn.CursorLocation = adUseClient
        '若是连sqlserver
        cn.Open "Provider=SQLOLEDB;Data Source=服务器名;User Id=用户名;PassWord=密码;Initial Catalog=数据库名"
        '若是连access
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp.mdb;Persist Security Info=False"     'mdb文件有密码的话加上:  ;Jet OLEDB:Database Password=密码
        rs.Open "select * from 表 where 姓名 ='***'", cn
        If Not rs.EOF Then MSFlexGrid1.DataSource = rs
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
      

  7.   

    '添加 Microsoft Activex Data Objects 2.5 Library引用Option Explicit
        Dim cn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        
    Private Sub Command1_Click()
    '查询
    MSFlexGrid1.Rows = 2
    rs.Open "select * from 表 where 姓名='" & Text1.Text & "'", cn
    If rs.EOF Then
        MsgBox "没有满足条件的纪录", vbInformation
    Else
        MSFlexGrid1.DataSource = rs
    End If
    rs.Close
    MSFlexGrid1.RefreshEnd SubPrivate Sub Command2_Click()
    '删除
        cn.Execute "delete from 表 where 姓名='" & Text1.Text & "'"
        rs.Open "select * from 表", cn
        If Not rs.EOF Then MSFlexGrid1.DataSource = rs
        rs.Close
    End SubPrivate Sub Command3_Click()
    '添加
        cn.Execute "insert into(编号,姓名) 表 select 'A00001','张山'"
        rs.Open "select * from 表", cn
        If Not rs.EOF Then MSFlexGrid1.DataSource = rs
        rs.Close
    End SubPrivate Sub Form_Load()
        
        cn.CursorLocation = adUseClient
        '若是连sqlserver
        cn.Open "Provider=SQLOLEDB;Data Source=服务器名;User Id=用户名;PassWord=密码;Initial Catalog=数据库名"
        '若是连access
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp.mdb;Persist Security Info=False"     'mdb文件有密码的话加上:  ;Jet OLEDB:Database Password=密码
        rs.Open "select * from 表", cn
        If Not rs.EOF Then MSFlexGrid1.DataSource = rs
        rs.CloseEnd Sub
    Private Sub Form_Unload(Cancel As Integer)
        cn.Close
        Set rs = Nothing
        Set cn = Nothing
    End Sub