vb数据库操作实例

合集下载

VB使用ADODB操作数据库

VB使用ADODB操作数据库

VB使用ADODB操作数据库Dim conn As New ADODB.Connection ’创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行Dim rs As ADODB.Recordset ’创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用Dim CnStr As String, Sql As String ’创建两个字符串变量分别存放两个集合的SQL语句代码段1、装载数据库(不属于Recordset集合)=============Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$’以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据操作员用户名、操作员密码FileName = App.Path & "\’数据库名’"DbIp = "数据库地址"DbName = "数据库名"DbUser = "数据操作员用户名"DbPw = "操作员密码"’以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量’1)连接Access数据库:’-------------------CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data source=" & FileNa me & ";Jet OLEDB:Database Password=" & DbPw’2)连接Oracle数据库:’-------------------CnStr = "PROVIDER=MSDAORA.1;Password=" & DbPw & ";User ID=" & DbUser & ";Data S ource=" & FileName & ";Persist Security Info=True"’其中:’PASSWORD:密码’User ID: 用户号’Data Source: 数据库名’Persist Security Info:’Provider:’3)连接VF的DBF库:’----------------CnStr = "PROVIDER=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=" & DbUser & ";SourceDB=" & FileName &";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"’4)连接SQL的数据库’------------------CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" & DbUser & ";pwd=" & DbPw & ";DRIVER=SQL Server;DATABASE=" & DbName & ";WSID=GQSOFT;SERVER= " &DbIP’也可以使用这段简易代码 CnStr = "Provider=SQLOLEDB;Data Source=" & DbIp & ";DATABASE=" & DbName & ";U ID=" & DbUser & ";pwd=" & DbPwConn.Open cnstr ’使用 Connection 集合的 Open 方法与数据库建立连接2、Recordset集合的常用方法==========================’1)打开一个表’------------Sql = "select * from 表名" ’SQL查询语句Set rs = New ADODB.Recordset ’新建一个实例rs.Open Sql, conn ’使用 Open 方法打开数据库中的一个表’注意,这种打开方式只能使用 rs.MoveNext (即,向后移动行坐标)而不能像其他方向,并且不能修改数据内容’’rs.Open Sql, conn,1 ’虽然只加了个“1”,但这种方法可以向任何方向移动行坐标。

VB中对数据库的操作

VB中对数据库的操作

VB中对数据库的操作''数据库操作(SmDbCtrl)'Option ExplicitPublic DbStyle As StringDim CT As SmDataDiap''====================================== ================================== '创建一个SQLSERVER定形连接(连接到SQL)'函数名:CreateShape'参数: P_Cnn ADODB连接,ServerName 服务器名,DBname 数据库名,UserID 登录用户名,UPw 登录密码,Timerout 连接超时'返回值:TRUE 连接成功.FALSE 连接失败.'例: CreateShape P_Cnn,"CJH","cjherp001","sa","123",15'====================================== ==================================Public Function CreateShape(ByRef P_Cnn As ADODB.Connection, _ServerName As String, _DbName As String, _UserID As String, _UPw As String, _Optional Timerout As Long = 15) As BooleanDim ReturnVal As BooleanDim ConnStr As StringErr.ClearOn Error Resume NextConnStr = "Provider=MSDataShape;Data Provider=SQLOLEDB.1;Password=" & UPw & ";Persist Security Info=True;User ID=" & UserID & _";Initial Catalog=" & DbName & ";Data Source=" & ServerNameP_Cnn.ConnectionString = ConnStrP_Cnn.ConnectionTimeout = TimeroutP_/doc/9c5451052.html,mandTimeou t = TimeroutP_Cnn.OpenDoEventsIf Err.Number = 0 ThenDbStyle = "SQL"ReturnVal = TrueElseErr.ClearDbStyle = ""ReturnVal = FalseEnd IfCreateShape = ReturnValErr.ClearEnd Function'====================================== ================================== '创建一个连接(连接到SQL)'函数名:CreateSqlConn'参数: P_Cnn ADODB连接,ServerName 服务器名,DBname 数据库名,UserID 登录用户名,UPw 登录密码,Timerout 连接超时'返回值:TRUE 连接成功.FALSE 连接失败.'例: CreateSqlConn p_cnn,"CJH","cjherp001","sa","123",15'====================================== ================================== Public Function CreateSqlConn(ByRef P_Cnn As ADODB.Connection, _ServerName As String, _DbName As String, _UserID As String, _UPw As String, _Optional Timerout As Long = 15) As BooleanDim ReturnVal As BooleanErr.ClearOn Error Resume NextIf P_Cnn.State = adStateOpen And Not IsEmpty(adStateOpen) ThenP_Cnn.CloseEnd IfP_Cnn.Provider = "MSDASQL.1"P_Cnn.ConnectionString = "Driver={SQL Server};Server=" & ServerName & ";DataBase=" & DbName & ";Uid=" & UserID &";Pwd=" & UPw & ";APP=" & App.Path & ";WSID=" & UserID & ";Connect Timeout=" & Timerout & ";"P_Cnn.ConnectionTimeout = TimeroutP_/doc/9c5451052.html,mandTimeou t = TimeroutP_Cnn.OpenDoEventsIf Err.Number = 0 ThenDbStyle = "SQL"ReturnVal = TrueElseErr.ClearDbStyle = ""ReturnVal = FalseEnd IfCreateSqlConn = ReturnValErr.ClearEnd Function''====================================== ================================== '创建一个连接(连接到ACCESS)'函数名:CreateMdbConn'参数: MdbCnn ADODB连接,MdbPath ACCESS数据库路径,Provider JET引擎版本,UserID 登录用户名,UserWord 登录密码'返回值:TRUE 连接成功.FALSE 连接失败.'例: CreateMdbConn p_cnn,"C:\DEMO.MDB","sa","123"'====================================== ==================================Public Function CreateMdbConn(ByRef MdbCnn As ADODB.Connection, _MdbPath As String, _Optional Provider = "Microsoft.Jet.OLEDB.4.0;", _Optional UserID As String = "admin", _Optional UserWord As String = "") As BooleanDim ConStr As StringErr.ClearOn Error Resume NextIf MdbCnn.State = adStateOpen And Not IsEmpty(adStateOpen) ThenMdbCnn.CloseEnd If'/------------------------------------------------------------------ConStr = "Provider=" & Provider & _"Data Source=" & MdbPath & ";" & _"Jet OLEDB:Database Password=" & UserWord & ";" & _"User ID=" & UserID & ";"MdbCnn.ConnectionString = ConStrMdbCnn.OpenDoEventsIf Err.Number = 0 ThenDbStyle = "MDB"CreateMdbConn = TrueElseErr.ClearDbStyle = ""CreateMdbConn = FalseEnd IfErr.ClearEnd Function'====================================== ==============================='创建一个连接(连接到其它数据库类型)'函数名:CreateOtherConn'参数: OtherCnn ADODB连接,FilePath 数据库路径,UserName 登录用户名,PassWord 登录密码,DbType SmDbType枚举数据库类型'返回值:TRUE 连接成功.FALSE 连接失败.'例:'CreateOtherConn Cnn, "E:\CjhLx\dbf", , , FoxPro'StrSql = "select * from [employee.dbf]"'Set Rs = RsOpen(Cnn, StrSql)'Set DataGrid1.DataSource = Rs'====================================== ===============================Public Function CreateOtherConn(ByRef OtherCnn As ADODB.Connection, _FilePath As String, _Optional UserName As String = "admin", _Optional PassWord As String = "", _Optional DbType As SmDbType = Access) As BooleanDim ConnStr As StringDim DriveName(5) As StringDim tDbType(5) As StringDim UserPwd(5) As StringErr.Clear'/驱动程序DriveName(1) = "{Microsoft Access Driver (*.mdb)}"DriveName(2) = "{Microsoft Excel Driver (*.xls)}"DriveName(3) = "{Microsoft Text Driver (*.txt; *.csv)}"DriveName(4) = "{Microsoft Visual FoxPro Driver};SourceType=DBF"DriveName(5) = "{Microsoft dBase Driver (*.dbf)}"'/类型tDbType(1) = "MDB"tDbType(2) = "XLS"tDbType(3) = "TXT"tDbType(4) = "FDB"tDbType(5) = "DDB"'/用户名和密码.UserPwd(1) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"UserPwd(2) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"UserPwd(3) = ""UserPwd(4) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"UserPwd(5) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"On Error Resume NextIf OtherCnn.State = adStateOpen And Not IsEmpty(adStateOpen) ThenOtherCnn.CloseEnd IfConnStr = "Provider=MSDASQL.1;Persist Security Info=False;DRIVER=" & DriveName(DbType) & ";" & UserPwd(DbType) & "DBQ=" & FilePathOtherCnn.ConnectionString = ConnStrOtherCnn.OpenDoEventsIf Err.Number = 0 ThenDbStyle = tDbType(DbType)CreateOtherConn = TrueElseErr.ClearDbStyle = ""CreateOtherConn = FalseEnd IfErr.ClearEnd Function'====================================== =================================== '打开一个记录集'函数名:RsOpen'参数: P_Cnn ADODB连接,StrSql SQL查询语句,SetNothing 非连接方式(TRUE默认).连接方式(FALSE)'返回值:记录集'例: RsOpen P_CNN,"SELECT ACHGOODS.* FROM ACHGOODS WHERE GDSID='001''====================================== =================================== Public Function RsOpen(ByRef P_Cnn As ADODB.Connection, _StrSql As String, _Optional SetConnect As Boolean = True) As ADODB.RecordsetDim Rs As New ADODB.RecordsetErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenIf SetConnect Then '使用非连接Rs.CursorLocation = adUseClient '使用客户端游标Rs.LockType = adLockBatchOptimistic '开放式批更新Rs.CursorType = adOpenKeyset '键集游标Else '使用连接(主要用于更新二进制字段)Rs.CursorLocation = adUseClientRs.CursorType = adOpenKeysetRs.LockType = adLockOptimistic '记录锁定End IfRs.Open StrSql, P_Cnn '执行SQLIf SetConnect Then Set Rs.ActiveConnection = Nothing '设置非连接If Err.Number = 0 ThenSet RsOpen = Rs.CloneElseSet RsOpen = NothingEnd IfRs.CloseSet Rs = NothingErr.ClearEnd Function'//执行一条SQL语句Public Function ExecSql(ByRef P_Cnn As ADODB.Connection, _StrSql As String) As BooleanErr.ClearIf P_Cnn.State <> 1 Then P_Cnn.OpenP_Cnn.Execute StrSqlExecSql = (Err.Number = 0)Err.ClearEnd Function''======================================================================== '建立数据库'函数名:CreateDataBase'参数: ServerName 服务器名,UserID 用户名(SA),Pwd 登录密码,DataBasName 建立的数据库名,DataBasPath 库文件目录的绝对路径'返回值:无'例: CreateDataBase "CJH","SA","123","CJHERP001","C:\DB"'====================================== ================================== Public Function CreateDataBase(ServerName As String, _UserID As String, _Pwd As String, _DataBasName As String, _DataBasPath As String) As BooleanDim A As Long, LeftName As StringDim DbC As New ADODB.ConnectionDim CreateBasSql As StringDim BagTrFlag As BooleanErr.ClearIf CreateSqlConn(DbC, ServerName, "Master", UserID, Pwd) ThenIf Right$(DataBasPath, 1) <> "\" Then DataBasPath = DataBasPath & "\"On Error GoTo Errhan:DataBasPath = Trim$(DataBasPath)If Len(DataBasPath) < 2 Then Exit FunctionIf Dir$(Left$(DataBasPath, 2), vbDirectory) = "" Then Beep: Exit Function '根目录是否存在'/---------------------------------------------------------If Right$(DataBasPath, 1) <> "\" Then DataBasPath = DataBasPath & "\"For A = 1 To Len(DataBasPath)If Mid$(DataBasPath, A, 1) = "\" ThenLeftName = Left$(DataBasPath, A)'/如果目录不存在,则先建立If Dir$(LeftName, vbDirectory) = "" Then MkDir LeftName: DoEventsEnd IfNextErr.ClearDbC.BeginTrans'/---------------------------------------------------------CreateBasSql = " CREATE DATABASE " & DataBasName & " ON (NAME=" & DataBasName & ",FILENAME='" & DataBasPath & DataBasName & ".mdf', SIZE=20,FILEGROWTH=4) " & _ " LOG ON (NAME=" & DataBasName & "Log" & ",FILENAME='" & DataBasPath & DataBasName & "Log.ldf',SIZE=20,FILEGROWTH=0)"DbC.Execute CreateBasSql/doc/9c5451052.html,mitTransEnd IfErrhan:If Err.Number <> 0 Then DbC.RollbackTransCreateDataBase = (Err.Number = 0)DbC.CloseSet DbC = NothingErr.ClearEnd Function''建立数据表'函数名:CreageDbT ab'参数: P_Cnn ADO连接,CreateTableSql 建表字符串'返回值:无'例:CreateDbTab P_CNN,CreateTabStrPublic Function CreateDbTab(ByRef P_Cnn As ADODB.Connection, _CreateTableSql As String) As BooleanErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenP_Cnn.BeginTransP_Cnn.Execute CreateTableSqlP_/doc/9c5451052.html,mitTransCreateDbTab = (Err.Number = 0)Err.ClearEnd Function''得到服务器上所有的数据库名'函数名:GetAllDatabases'参数: ServerName 服务器名,UserID 登录用户名(SA),Pwd 登录密码'返回值:数据库名的字符串数组'例: GetAllDatabases "CJH","SA","123"Public Function GetAllDatabases(ServerName As String, _UserID As String, _Pwd As String, _Optional strDriver As String = "SQL Server") As String()Dim PCnn As New ADODB.ConnectionDim RsSchema As New ADODB.RecordsetDim ConnStr As StringDim ReturnVal() As StringDim ReID As LongErr.ClearOn Error Resume NextConnStr = "Driver={" & strDriver & "};"ConnStr = ConnStr & "Server=" & ServerName & ";"ConnStr = ConnStr & "uid=" & UserID & ";pwd=" & Pwd & ";"PCnn.ConnectionString = ConnStrPCnn.Open: ReID = 0Set RsSchema = PCnn.OpenSchema(adSchemaCatalogs)Do Until RsSchema.EOFReID = ReID + 1ReDim Preserve ReturnVal(ReID - 1)ReturnVal(ReID - 1) = RsSchema!Catalog_NameRsSchema.MoveNextLoopIf PCnn.State = adStateOpen And Not IsEmpty(adStateOpen) ThenPCnn.CloseEnd IfGetAllDatabases = ReturnValErr.ClearEnd Function''取某数据库下的数据表'函数名:GetDbTabS'参数: P_Cnn ADO连接'返回值:包含数据表的字符串数组'例: TabArr=GetDbTabS(P_CNN)Public Function GetDbTabs(ByRef P_Cnn As ADODB.Connection) As String()Dim RstSchema As ADODB.RecordsetDim strCnn As StringDim ReturnVal() As StringDim ReID As LongErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenSet RstSchema = P_Cnn.OpenSchema(adSchemaTables)ReID = 0Do Until RstSchema.EOFIf UCase$(Left$(RstSchema.Fields("TABLE_TYPE"), 3)) <> "SYS" ThenReID = ReID + 1ReDim Preserve ReturnVal(ReID - 1)ReturnVal(ReID - 1) = RstSchema.Fields("TABLE_NAME") ' & ":" & RstSchema!TABLE_TYPEEnd IfRstSchema.MoveNextLoopRstSchema.CloseSet RstSchema = NothingGetDbTabs = ReturnValErr.ClearEnd Function'====================================== ====================================== '取临时表名'函数名:GetTmpName'参数:'返回值:一个唯一的临时表名'例: TmpName=GetTmpName()'(注:临时表名="#TmpTal" & 累加数 & 毫秒数)'====================================== ====================================== Public Function GetTmpName(Optional UserName As String= "") As StringDim ReturnVal As StringDim TimVal As StringStatic K As LongErr.ClearOn Error Resume NextK = K + 1If K >= 2147483645# Then K = 0 '累加数TimVal = timeGetTime() '毫秒数ReturnVal = "#" & "TmpTal" & UserName & TimVal & CT.ToStr(K)GetTmpName = IIf(Err.Number = 0, ReturnVal, "")Err.ClearEnd Function''====================================== ================================='对表格或记录集以 INSERT INTO 保存.'函数名:GetInsertIntoSql'参数: P_Cnn ADO连接,mRs 记录集,DateTabName 目标数据表名'返回值:SQL语句'例: InsertIntoDB P_CNN,RS,"ACHGOODS"'====================================== =================================Public Function InsertIntoDB(ByRef P_Cnn As ADODB.Connection, _DateTabName As String, _ByRef MRs As ADODB.Recordset) As BooleanDim StrSql As StringDim TabFied() As SmFiedArrtr '数据库字段Dim SaveFied() As SmFiedArrtr '表格与数据库同时存在的字段Dim SaveID As LongDim AddSave As BooleanDim AddFile As SmFiedArrtrDim FileCon As StringDim FldVal As StringDim TmpVal As VariantDim FldType As LongDim A As Long, B As Long, I As LongDim FldValColl As New Collection'/--------------------------------------------------------------------------------------Err.ClearOn Error Resume NextIf (MRs.EOF And MRs.BOF) Then Exit FunctionErase TabFiedIf P_Cnn.State <> 1 Then P_Cnn.OpenTabFied = GetTabFldAttrib(P_Cnn, DateTabName) '取数据库字段If UBound(TabFied, 1) > 0 ThenSaveID = 0: AddSave = FalseFor A = 0 To MRs.Fields.Count - 1For B = 0 To UBound(TabFied, 1)If UCase$(TabFied(B).FieldName) =UCase$(MRs.Fields(A).Name) Then'处理重复的字段名.Err.ClearFldValColl.Add TabFied(B), "_" & UCase$(TabFied(B).FieldName)If Err.Number <> 457 ThenSaveID = SaveID + 1ReDim Preserve SaveFied(SaveID - 1)SaveFied(SaveID - 1) = TabFied(B)End IfExit ForEnd IfNextNext'/---------------------------------------------------------------------------------------'/保存字段列表For A = 0 To UBound(SaveFied, 1) '字段列表If SaveFied(A).FieldType <> 205 ThenFileCon = FileCon & "[" & SaveFied(A).FieldName & "],"End IfNext AFileCon = Left$(FileCon, Len(FileCon) - 1)MRs.MoveFirstWhile Not MRs.EOFFldVal = ""For I = 0 To UBound(SaveFied, 1)FldType = SaveFied(I).FieldType '字段类型If FldType <> 205 Then '将IMAGE字段排除TmpVal = CT.ToStr(MRs.Fields(SaveFied(I).FieldName)) '字段值If Len(TmpVal) = 0 Then '对空或NULL的处理Select Case FldTypeCase 2, 3, 4, 5, 6, 17, 131 '数值类型If SaveFied(I).FieldIsNull <> 0 Then '可接受NULLFldVal = FldVal & "NULL,"ElseFldVal = FldVal & "0,"End IfCase 135 '日期If SaveFied(I).FieldIsNull <> 0 Then '可接受NULLFldVal = FldVal & "NULL,"ElseIf DbStyle = "MDB" ThenFldVal = FldVal & "#" & Now() & "#,"ElseFldVal = FldVal & "'" & Now() & "',"End IfEnd IfCase Else '其它类型If SaveFied(I).FieldIsNull <> 0 ThenFldVal = FldVal & "NULL,"ElseFldVal = FldVal & "'',"End IfEnd SelectElseSelect Case FldTypeCase 2, 3, 4, 5, 6, 17, 131 '数值类型FldVal = FldVal & "" & TmpVal & ","Case 135If DbStyle = "MDB" ThenFldVal = FldVal & "#" & TmpVal & "#,"ElseFldVal = FldVal & "'" & TmpVal & "',"End IfCase Else '其它类型FldVal = FldVal & "'" & Replace(TmpVal, "'", "''") & "',"End SelectEnd IfEnd IfNextFldVal = Left$(FldVal, Len(FldVal) - 1)StrSql = "INSERT INTO [" & DateTabName & "] (" & FileCon & ") VALUES (" & FldVal & ")"P_Cnn.Execute StrSqlMRs.MoveNextWendEnd IfSet FldValColl = NothingInsertIntoDB = (Err.Number = 0)Err.ClearEnd Function''对表格或记录集以 UPDATE 保存.'函数名:GetUpdataSql'参数: P_Cnn ADO连接,mRs 记录集,DateTabName 目标数据表名,WhereStr 更新条件'返回值:SQL语句'例: UpdataDB P_CNN,RS,"ACHGOODS","WHERE GDSID='001'"Public Function UpdataDB(ByRef P_Cnn As ADODB.Connection, _DateTabName As String, _ByRef MRs As ADODB.Recordset, _WhereStr As String) As BooleanDim StrSql As StringDim TabFied() As SmFiedArrtr '数据库字段Dim SaveFied() As SmFiedArrtr '表格与数据库同时存在的字段Dim SaveID As LongDim AddSave As BooleanDim AddFile As SmFiedArrtrDim FileCon As StringDim FldVal As StringDim TmpVal As VariantDim FldType As LongDim A As Long, B As Long, I As Long'/----------------------------------------------------------------------------------------Err.ClearOn Error Resume Next'If MRs.EOF And MRs.BOF Then Exit FunctionErase TabFiedIf P_Cnn.State <> 1 Then P_Cnn.OpenTabFied = GetTabFldAttrib(P_Cnn, DateTabName) '取数据库字段If UBound(TabFied, 1) > 0 ThenSaveID = 0For A = 0 To MRs.Fields.Count - 1For B = 0 To UBound(TabFied, 1)If UCase$(TabFied(B).FieldName) = UCase$(MRs.Fields(A).Name) ThenSaveID = SaveID + 1ReDim Preserve SaveFied(SaveID - 1)SaveFied(SaveID - 1) = TabFied(B)Exit For '找到数据库与记录集中相同的值,跳出循环.End IfNextNext'/--------------------------------------------------------------------------------------MRs.MoveFirstWhile Not MRs.EOFFldVal = ""For I = 0 To UBound(SaveFied, 1)FldType = SaveFied(I).FieldType '字段类型If FldType <> 205 Then '将IMAGE字段排除TmpVal = CT.ToStr(MRs.Fields(SaveFied(I).FieldName)) '字段值If Len(TmpVal) = 0 Then '对空或NULL的处理Select Case FldTypeCase 2, 3, 4, 5, 6, 17, 131 '数值类型If SaveFied(I).FieldIsNull <> 0 Then '可按受NULLFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=NULL"ElseFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=0"End IfCase 135 '日期时间If SaveFied(I).FieldIsNull <> 0 Then '可接受NULLFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=NULL"ElseIf DbStyle = "MDB" ThenFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=#" & Now() & "#"ElseFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]='" & Now() & "'"End IfEnd IfCase Else '其它类型If SaveFied(I).FieldIsNull <> 0 ThenFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=NULL"ElseFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=''"End IfEnd SelectElseSelect Case FldTypeCase 2, 3, 4, 5, 6, 17, 131 '数值类型FldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=" & TmpValCase 135If DbStyle = "MDB" ThenFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=#" & TmpVal & "#"ElseFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]='" & TmpVal & "'"End IfCase Else '其它类型FldVal = FldVal & ",[" & SaveFied(I).FieldName & "]='" & Replace(TmpVal, "'", "''") & "'"End SelectEnd IfEnd IfNextFldVal = " Set " & Right$(FldVal, Len(FldVal) - 1) & " " & WhereStrStrSql = "UpDate [" & DateTabName & "]" & FldValP_Cnn.Execute StrSqlMRs.MoveNextWendEnd IfUpdataDB = (Err.Number = 0)Err.ClearEnd Function''取某数据表下所有的字段及其属性'函数名:GetTabFldAttrib'参数: P_Cnn ADO连接,DateTabName 目标数据表名'返回值:SmFiedArrtr 类型数组'例: FiedAtrrib=GetTabFldAttrib(P_CNN,"ACHGOODS")Public Function GetTabFldAttrib(ByRef P_Cnn As ADODB.Connection, _DbTableName As String) As SmFiedArrtr()Dim A As LongDim StrSql As StringDim Rs As New ADODB.RecordsetDim ReturnVal() As SmFiedArrtrDim ReID As LongErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenStrSql = "Select T op 1 * From [" & DbTableName & "]" '取字段名Set Rs = RsOpen(P_Cnn, StrSql)Set Rs.ActiveConnection = NothingErase ReturnVal: ReID = 0For A = 0 To Rs.Fields.Count - 1ReID = ReID + 1ReDim Preserve ReturnVal(ReID - 1)ReturnVal(ReID - 1).FieldType = Rs.Fields(A).Type '数据类型ReturnVal(ReID - 1).FieldName = Rs.Fields(A).Name '字段名ReturnVal(ReID - 1).FieldIsNull = Rs.Fields(A).Attributes And adFldIsNullable '是否可接受NULLReturnVal(ReID - 1).FieldDefSize = Rs.Fields(A).DefinedSize '定义的数据长度ReturnVal(ReID - 1).FieldActSize = 0 '实际数据长度(因只有字段名),故此值是0NextSet Rs = NothingGetTabFldAttrib = ReturnValErr.ClearEnd Function''取某数据表下除IMAGE字段名的所有字段名'函数名:GetTabFldName'参数: P_Cnn ADO连接,DateTabName 目标数据表名'返回值:String 类型数组'例: StrFld=GetTabFldName(P_CNN,"ACHGOODS")Public Function GetTabFldName(ByRef P_Cnn As ADODB.Connection, _DbTabname As String) As StringDim N As LongDim ReturnVal As StringDim FltArt() As SmFiedArrtrErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenReturnVal = ""FltArt() = GetTabFldAttrib(P_Cnn, DbT abname)For N = 0 To UBound(FltArt)If FltArt(N).FieldType <> 205 ThenReturnVal = ReturnVal & DbTabname & "." & FltArt(N).FieldName & ","End IfNextReturnVal = Left$(ReturnVal, Len(ReturnVal) - 1)GetTabFldName = IIf(Err.Number = 0,ReturnVal, "")Err.ClearEnd Function''取记录集下所有的字段及其属性'函数名:GetRsAttrib'参数: mRs 记录集'返回值:FiedArrtr类型数组'例: RsAtrrib=GetRsAttrib(Rs)Public Function GetRsAttrib(ByRef MRs As ADODB.Recordset) As SmFiedArrtr()Dim A As LongDim ReturnVal() As SmFiedArrtrDim Rs As New ADODB.RecordsetDim ReID As LongErr.ClearSet Rs = MRs.CloneErase ReturnValFor A = 0 To Rs.Fields.Count - 1ReID = ReID + 1ReDim Preserve ReturnVal(ReID - 1)ReturnVal(ReID - 1).FieldType = Rs.Fields(A).Type '数据类型ReturnVal(ReID - 1).FieldName = Rs.Fields(A).Name '字段名ReturnVal(ReID - 1).FieldIsNull = Rs.Fields(A).Attributes And adFldIsNullable '是否可接受NULLReturnVal(ReID - 1).FieldDefSize = Rs.Fields(A).DefinedSize '定义的数据长度ReturnVal(ReID - 1).FieldActSize = Rs.Fields(A).ActualSize '数据的实际长度NextSet Rs = NothingGetRsAttrib = ReturnValErr.ClearEnd Function''取[窗体控件]与[字段]的对应关系'函数名:GetConT oFld'参数: P_Cnn ADODB.Connection,SelectStr SQL语句.'返回值:SmCtrlCorRs 类型数组'例: FrmAndFied=GetConT oFld(P_Cnn,Me)'*窗体控件命名规则:1-3 控件类型,4 W读写标志,R只读标志,其它,不作处理, 5 数据类型,6----最后.相对的字段名'*关于数据类型:C -字符 I 整数 F 浮点数 A 金额 U 单价 D 日期 T 时间Public Function GetConToFld(ByRef P_Cnn As ADODB.Connection, ByRef Frm As Object, SelectStr As String) As SmCtrlCorRs()Dim RevArr() As SmCtrlCorRsDim StrSql As StringDim Rs As New ADODB.RecordsetErr.ClearOn Error Resume Next' If (Frm Is Nothing) Or (P_Cnn Is Nothing) Then Exit Function ' If Len(Trim$(DbTabname)) = 0 Then DbTabname = /doc/9c5451052.html,'' StrSql = "SELECT TOP 1 * FROM [" & DbTabname & "]"StrSql = SelectStrIf P_Cnn.State <> 1 Then P_Cnn.OpenSet Rs = RsOpen(P_Cnn, StrSql)RevArr = GetConT oRs(Frm, Rs)GetConT oFld = RevArrSet Rs = NothingErase RevArrErr.ClearEnd Function''取[窗体控件]与[记录集]的对应关系'函数名:GetConT oRs'参数: Frm 源窗体名,mRs 源记录集'返回值:SmCtrlCorRs 类型数组'例: FrmAndFied=GetConT oRs(Me,Rs)'*窗体控件命名规则:1-3 控件类型,4 W读写标志,R只读标志,其它,不作处理, 5 数据类型,6----最后.相对的字段名'*关于数据类型:C -字符 I 整数 F 浮点数 A 金额 U 单价 D 日期 T 时间Public Function GetConToRs(ByRef m_Frm As Object, _ByRefMRs As ADODB.Recordset) As SmCtrlCorRs()Dim A As Long, B As LongDim SaveID As LongDim AddSave As BooleanDim ArrayCon() As Control '控件Dim TabFied() As SmFiedArrtr '数据库字段Dim SetFied() As String '同时存在的字段Dim ReturnVal() As SmCtrlCorRs '定义一个结构数组,用于返回Dim AddFile As SmCtrlCorRsDim Rs As New ADODB.RecordsetDim SId As LongDim FrmCon As ControlDim ConName As StringDim ConID As LongDim Frm As FormErr.ClearOn Error Resume NextErase ArrayCon: ConID = 0Set Frm = m_FrmFor Each FrmCon In Frm.Controls '取控件,放入一个数组中ConName = /doc/9c5451052.html,'/将图片框控件排除If UCase$(TypeName(FrmCon)) = UCase$("PictureBox") Or UCase$(TypeName(FrmCon)) = UCase$("Image") Or UCase$(TypeName(FrmCon)) = UCase$("SMPICBOX") ThenElseIf Len(ConName) > 5 ThenIf UCase$(Mid$(ConName, 4, 1)) = "W" Or UCase$(Mid$(ConName, 4, 1)) = "R" ThenConID = ConID + 1ReDim Preserve ArrayCon(ConID - 1)Set ArrayCon(ConID - 1) = FrmConEnd IfEnd IfEnd IfNext'/---------------------------------------------------------------------------------------------Erase TabFiedSet Rs = MRs.CloneIf Rs.EOF And Rs.BOF ThenRs.AddNewEnd IfTabFied = GetRsAttrib(MRs) '取字段属性If UBound(TabFied, 1) > 0 ThenSaveID = 0: AddSave = FalseFor A = 0 To UBound(TabFied, 1)For B = 0 To UBound(ArrayCon, 1)ConName = UCase$(Right$(ArrayCon(B).Name, Len(ArrayCon(B).Name) - 5))。

vb教程--数据库连接

vb教程--数据库连接

Vb数据库连接vb数据库操作是初学者普遍感到头疼的地方,因为现有的vb教材和资料中的数据库操作这部分,多是泛泛而谈或是一带而过。

因此就想组织一个包括添加、修改、删除这些基本功能的数据库操作实例供大家参考。

久已未用vb6,机器里已经装上了VS 2008,再改回vb6,感觉实在是怪怪的。

还好有朋友帮忙,感谢“小二黑”网友供稿!也许有朋友觉得vb6版本已经很低了,做这个事还有意义吗?其实对微软来说,vb5是vb,vb6是vb,中的也是vb;而对于许多初学者来说,vb只是vb6,为什么这么说呢?因为对于许多不了解编程的朋友来说,似乎vb就是编程的代名词,学编程的第一反应就是学vb,而民间的电脑培训学校开设的多数都是vb6课程,那么他们学到的都是vb6;同时计算机等级考试也可以用vb6来过级,有相当部分的朋友是为了考证而学编程的,你相信他会放着简单易学的vb6不学,而去研究庞大的.NET吗?因此我觉得这个事还是值得去做的,所以就有了下面这几篇文章。

第一部分:vb数据库操作实例vb教程(续)--编写一个小型的信息管理系统vb教程(续)--准备数据库vb教程(续)--设计系统的界面及对象的属性vb教程(续)--为对象添加事件代码第二部分:补充内容vb教程(续)--ODBC数据源简介vb教程(续)--配置Access数据源vb教程(续)---配置SQL Server数据源vb教程(续)--VB的ADO对象vb教程(续)--vb adodb Connection对象简介vb教程(续)--vb连接Access数据库实例vb教程(续)--使用ADO Data控件连接Access的简单实例vb教程(续)--编写一个小型的信息管理系统受委托为编程入门网做一个简单的vb操作数据库的实例,来演示一下如何用vb向数据库中添加、修改、删除记录这些操作。

我觉得自己是比较菜的,几年来别人都在进步,只有我还在原地踏步。

不过没有办法,我们这一圈人里现在只有我机器上还有vb6,勉为其难,只有尝试一下了。

vb数据库操作实例

vb数据库操作实例

vb数据库操作实例在VB中,我们可以使用ADO(ActiveX Data Objects)来进行数据库操作。

ADO提供了一种统一的方法来访问各种类型的数据源,包括关系型数据库、文本文件、Excel文件等。

下面我们将分别以访问Access数据库和SQL Server数据库为例,介绍一些常见的数据库操作实例。

1. 访问Access数据库Access是一种常用的关系型数据库管理系统,我们可以使用VB来访问和操作Access数据库。

首先,我们需要添加对ADODB的引用,然后创建一个连接对象和一个命令对象。

```vbDim conn As New ADODB.ConnectionDim cmd As New mandconn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\path\to\database.accdb"conn.Opencmd.ActiveConnection = connmandType = adCmdTextmandText = "SELECT * FROM TableName"Dim rs As ADODB.RecordsetSet rs = cmd.ExecuteWhile Not rs.EOF'处理数据rs.MoveNextWendrs.Closeconn.Close```上述代码首先创建了一个连接对象`conn`,并设置了连接字符串,这里使用了Access数据库的OLEDB提供程序。

然后创建了一个命令对象`cmd`,并设置了命令的类型和文本。

接着执行了命令,并通过`Recordset`对象`rs`来获取查询结果。

最后使用`While`循环遍历结果集,并对数据进行处理。

2. 访问SQL Server数据库SQL Server是一种常用的关系型数据库管理系统,我们可以使用VB来访问和操作SQL Server数据库。

vb数据库编程实例例子的Visual C#中实现DB2数据库的编程

vb数据库编程实例例子的Visual C#中实现DB2数据库的编程

vb数据库编程实例:例子的Visual C#中实现DB2数据库的编程疯狂代码 / ĵ:http://DotNet/Article48395.html 在Visual Beta 1版本中访问IBM DB2等非SQL Server数据库通常是使用ODBC思路方法而在Beta 2中则改用OLE DB方式存取数据库 Beta1中连接串主要需声明数据库ODBCDNS名字但Beta 2中OLE DB连接串就较复杂了使用类也不相同由于DB2等数据库在大型机等应用中使用非常广泛.NET自然会全力支持此类编程开发为此下文将逐步阐述OLE DBDB2开发 OLE DB for DB2驱动 首先Visual 和Windows 2000 Server中并未直接提供DB2OLE DB驱动因此需下载Microsoft Host Integration Server 2000软件Software该软件Software包中含OLE DB Provider and ODBC driver for DB2需下载Server端软件Software包并在安装时选择安装Data Integration安装完成后就可使用其OLEDBDB2驱动了 设置数据库连接 首先我们需配置好DB2客户端设置打开视图选单项中服务器资源管理器在其数据连接中新增个连接指定选项时选择Microsoft OLE DB Provider for DB2下步连接选项中填写如下信息:Data Source: QCDB(请酌情修改)Network:TCP/IPIP Address:数据库服务器地址Network Port:DB2服务端口Username:数据库访问权限用户名Password:该用户口令Database initial Catalog:QCDBPackage collection:QCDBdefault schema:Userid 下步高级选项中选各自国家语言对应code page及CCSID最后按确认键完成创建连接 假设QCDB这个DB2数据库中有名为address新数据表其包含 4个字段:name、email、age和address我们可用服务器资源管理器打开上述连接及该数据表可输入数条中文记录确定中文能否正常显示 为项目增加数据库连接 用Visual Studio新建个项目激活服务器资源管理器上述连接用鼠标将该连接拖至新建WebForm上则OLE DB需要连接参数全部自动写入Web Form中上述连接生成语句如下:this.oleDbConnection1.ConnectionString= @Provider=DB2OLEDB;Cache Authentication=False;Integrated Security=;Password=freebsd9;Persist Security Info=True;User ID=userid;Initial Catalog=qcdb;Data Source=qcdb;Mode=ReadWrite;Extended Properties=;APPC Remote LU Alias=;APPC Local LU Alias=;APPC Mode Name=QPCSUPP;Network Transport Library=TCPIP;Host CCSID=37;PC Code Page=1282;Network Address=172.23.169.1;Network Port=4444;Package Collection=qcdb;Default Schema=userid;Alternate TP Name=;Process Binary as Character=False;Units of Work=RUW 用服务器资源管理器工具生成连接可避免错写各种参数从而可快速地实现数据库连接 Web Form显示数据库数据 为Web Form新增个OleDbDataAdapter类对象oleDbDataAdapter1为其选择数据连接时选上面建立连接如:erid选择使用SQL语句生成SQL语句如:Select ?from address最后提示完成再为Web Form新增个DataSet并命名为dataSet1用来放查询得到数据新增个显示数据用DataGrid命名为DataGird1最后在Web Form段中Page_Init部分中增加如下代码:oleDbConnection1.Open;//打开数据库连接oleDbDataAdapter1.Fill(dataSet1,Address);//将得来数据填入dataSetDataGrid1.DataBind;//绑定数据oleDbConnection1.Close;//关闭连接 编译运行后可见address表中内容被显示于Web FormDataBrid中OleDbConnection1等属性设置都在生成Web Form设计代码中 增加数据库数据 在Web Form上新增对应字段数量个数TextBox及个button为该按键增加Click响应事件代码如下:mandText= INSERT INTO ADDRESS(NAME, EMAIL, AGE, ADDRESS) VALUES (+TextBox1.Text+,+TextBox2.Text+, +TextBox3.Text+,+TextBox4.Text+);oleDbInsertCommand1.Connection.Open;//打开连接oleDbInsertCommand1.ExecuteNonQuery;//执行该SQL语句oleDbInsertCommand1.Connection.Close;//关闭连接 实际编程中我们需注意SQL语句单引号问题以及数字和串处理问题 删除数据库数据 在Web Form上新增个TextBox5及个按键要执行删除时在TextBox5中填入要删除记录name字段值然后按该按键执行删除该按键代码如下:.Data.OleDb.OleDbCommand oleDeleteCommand1.Data.OleDb.OleDbCommand;this.oleDbDataAdapter1.DeleteCommand= oleDeleteCommand1;//声明为oleDb命令mandText=DELETE FROM ADDRESS WHERE NAME=+TextBox5.Text+;oleDeleteCommand1.Connection= this.oleDbConnection1;//指明连接oleDeleteCommand1.Connection.Open;//打开连接oleDeleteCommand1.ExecuteNonQuery;//执行SQL语句oleDeleteCommand1.Connection.Close;//关闭连接 对于增加、更新和删除操作后DataGrid刷新可执行类似Select SQL语句即可 上述代码可供各种非SQL Server数据库编程参考和使用微软为此提供了如OLE DB Provider for Oracle、AS/400和VSAM等众多驱动OLE DB方式确实提供了较ODBC方式更为广泛数据存取范围如可存取Access库中数据、邮件系统中数据、Web上文本及图形、目录服务等等符合ODBC标准数据源就是符合OLE DB标准数据存储子集而且OLE DBAPI是符合COM标准和基于对象API这些都是较原ODBC方式有大幅改进从而为综合数据集成处理提供了更广泛支持 通过以上讲解笔者希望使读者初步了解在Visual 中以DB2为后台数据库时应用系统开发步骤也希望读者举反 3领会思想和思路方法以便更好地应用到自己系统开发中 上述在中文Windows 2000 Server、IBM DB2和Visual Beta 2环境中编译并正常运行2009-1-9 12:35:19疯狂代码 /。

vb数据库编程实例

vb数据库编程实例

VB编程实例4(单个数据库表应用程序) 1.打开工程vblx,添加一个窗口Form1,修改Form1的属性,名称(Nam e)为:fxs,Caption(窗口标题)为: 学生档案,保存在你的目录下.在fm ain中添加水平菜单(m3):数据库,添加下拉菜单(m31): 学生档案,其单击代码为:fxs.Show 2.准备好access数据库xs.m db,有两个表xs,cj,在数据源中添加系统DSN,选择驱动程序为Microsoft Access Driver,名称为lx,数据库指向你的xs.m db 添加ADO部件(Mi crosoft ADO Data Control 6.0)和DataGrid 部件(Microsoft DataGrid Control 6.0). 3.在窗体上放一个框架Fram e1,去掉Caption,设BorderStyle为0-None,在Fram e1上放一个Fram e2, 去掉Caption,设BorderStyle为0-None,在Fram e2上放置Adodc1,设其ConnectionString属性为DNS=lx, RecordSource的命令类型为2-adCm dTable,表名为xs,在Fram e2上放置命令按钮数组Comm and1(0~3),Caption分别为:添加,保存,删除,关闭在Fram e1上放一个Fram e3,去掉Caption,在Fram e3上放置标签数组zdm(0~7),设置字体,颜色, Caption分别为序号,登录名,姓名,性别,生日,电子邮件,电话,住址,放置文本框数组zdz(0~7), DataSource为Adodc1,DataField分别为xh,dlm,xm,xb,sr,eml,dh,dz 4.在窗体上放一个DataGrid1,设其DataSource为Adodc1,右击DataGrid1选择检索字段, 再右击调出属性页,在通用页设置允许添加,删除,更新,在列页设置各列的标题分别为: 序号,登录名,姓名,性别,生日,电子邮件,电话,住址,在布局页设置各列的宽和对齐方式5.响应Form的Load事件,添加如下代码: Left = (Screen.Width - Width) \ 2 Top = (Screen.Height - Height) \ 2'窗口居中 Fram e1.Left = 0: Fram e1.Top = 0 Fram e1.Width = ScaleWidth Fram e1.Height = ScaleHeight / 4 Fram e2.Left = (ScaleWidth -Fram e2.Width) \ 2 Fram e3.Left = (ScaleWidth - Fram e3.Width) \ 2 DataGrid1.Top = ScaleHeight / 4: DataGrid1.Left = 0 DataGrid1.Width = ScaleWidth DataGrid1.Height = ScaleHeight * 3 / 4 Adodc1.Refresh 响应Form的Resize事件,添加如下代码: If WindowState = 1 Then Exit Sub'最小化时不执行代码If WindowState = 0 Then Left = (Screen.Width - Width) \ 2 Top = (Screen.Height - Height) \ 2'正常窗口居中End If Fram e1.Left = 0: Fram e1.Top = 0 Fram e1.Width = ScaleWidth Fram e1.Height = ScaleHeight / 4 Fram e2.Left = (ScaleWidth - Fram e2.Width) \ 2 Fram e3.Left = (ScaleWidth - Fram e3.Width) \ 2 DataGrid1.Top = ScaleHeight / 4: DataGrid1.Left = 0 DataGrid1.Width = ScaleWidth DataGrid1.Height = ScaleHeight * 3 / 4 响应Form的Unload事件,添加如下代码: Adodc1.Recordset.Close 响应Comm and1的Click事件Select Case Index Case 0 Adodc1.Recordset.AddNew Case 1 Adodc1.Recordset.Update Case 2 Adodc1.Recordset.Delete Case 3 Unload fxs End Select。

VisualBasic开发实战1200例

VisualBasic开发实战1200例

《Visual Basic开发实战1200例(第Ⅱ卷)》光盘内容框架本书附带光盘内容包括本书源程序、部分录像文件等内容。

完整的光盘内容框架如图1所示。

图1 光盘内容框架图如何使用本书源程序1.开发及运行环境本书源程序都是在Windows Server 2003下开发的,程序测试环境为Windows Server 2003。

用户只有正确配置程序所需的运行环境以后,才可以使用本书中的源程序。

软件开发平台如下:操作系统:Windows Server 2003数据库:SQL Server 2000、Access 2003开发环境:Visual Basic分辨率:最佳效果1024× 7682.源程序使用方法(1)使用本书中的源程序时,请将源程序文件夹下的所有文件拷贝到计算机硬盘上,并去掉所有文件的只读属性。

(2)在系统上安装Visual Basic 、Access 2003、SQL Server 2000数据库、SQL Server 2005数据库。

3.附加SQL Server 2000数据库下面以MR\03\043\DataBase为例,讲解SQL Server 2000数据库的附加方法。

(1)将MR\03\043\DataBase文件夹下扩展名为.MDF和.LDF的两个文件拷贝到SQL Server 2000安装路径下的MSSQL/Data目录下。

(2)打开SQL Server 2000中的“企业管理器”,然后展开本地服务器,在“数据库”节点上单击鼠标右键,在弹出的快捷菜单中选择“所有任务”/“附加数据库”命令,如图2所示。

图2 选择“附加数据库”命令(3)在弹出的“附加数据库”对话框中选择刚拷贝过去的数据库文件(.MDF文件),如图3所示。

图3 选择所要附加的数据库(4)单击“确定”按钮,弹出如图4所示的提示框。

图4 系统提示(5)单击“确定”按钮,完成附加数据库操作。

:如果数据库在SQL Server 2000中附加失败,出现602错误,此时将该程序附加在SQL Server 2005数据库上即可。

vb数据库编程实例 -回复

vb数据库编程实例 -回复

vb数据库编程实例-回复VB数据库编程实例数据库是一个非常重要的工具,可用于存储和管理大量数据。

在编程中,使用数据库可以实现更高级的功能和更复杂的数据处理。

VB(Visual Basic)是一种基于对象的编程语言,提供了丰富的数据库编程功能。

在本篇文章中,我们将通过一个实例来介绍VB数据库编程的基本概念和步骤。

1. 数据库准备在开始之前,我们需要准备一个数据库。

我们可以使用任何数据库系统,如MySQL、Oracle或SQL Server。

在本实例中,我们将使用Microsoft Access作为我们的数据库。

打开Access并创建一个新的数据库文件,我们将其命名为“example.mdb”。

2. 创建表格在我们的例子中,我们将创建一个简单的用户表格。

该表格将包含用户的ID、姓名和年龄信息。

在Access中,创建一个新的表格,为表格添加三个字段,分别为“ID”(自动编号)、“Name”(文本类型)和“Age”(数值类型)。

3. 创建VB应用程序现在,我们将使用VB来创建一个窗体应用程序,以便能够与数据库进行交互。

打开Visual Studio,创建一个新的VB Windows Forms应用程序项目。

这将创建一个空的窗体。

4. 引用在VB中进行数据库编程,我们将使用库。

在解决方案资源管理器中的“引用”下,右键单击并选择“添加引用”。

在“COM”标签页下,找到“Microsoft ActiveX 数据对象2.8库”(或更高版本),勾选并点击“确定”按钮。

5. 添加控件在窗体设计器中,打开工具箱,并从中拖动一个“DataGridView”控件和四个“TextBox”控件到窗体上。

DataGridView将用于显示数据库中的数据,而TextBox将用于添加、更新和删除数据。

6. 设计界面调整控件的位置和大小,使其布局合理。

为TextBox控件添加标签,以标识其对应的数据库字段。

为DataGridView控件添加列,以与表格中的字段对应。

vb操作access数据库的方法

vb操作access数据库的方法

VB操作Access数据库方法使用ADODB首先,声明一个链接变量,并根据需要声明记录集变量。

建立与数据库的链接,如果数据库没有口令,最后一行可以不写(写上也不会错)。

这种方法虽然代码长一些,但对数据环境要求低,且结构清晰,所编写的发布程序也大为减小。

由于与链接SQL Server等数据库的方法一样,因而大量的操作数据库的代码相同,当数据库需要由Access扩充到一些大型数据库,或由一些大型数据库裁剪出一个简单数据库时,程序的移植会比较方便。

另外,这种方法对于Access97及Access2000均能很好地支持,兼容性好。

对于大量插入、删除、修改等操作,只在Connection层进行即可,既可提高速度又可减少代码。

如果还要获取具体的记录集内容,则须再根据条件打开具体的库表,代码如下:ADO常用方法下面是我所掌握的使用ADO对数据库操作的一些常用方法,主要是提供给初学者作为参考,有不对的地方请指正。

如有补充不胜荣幸准备工作========Dim conn As New ADODB.Connection '创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行Dim rs As ADODB.Recordset '创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用Dim CnStr As String, Sql As String '创建两个字符串变量分别存放两个集合的SQL语句代码段1、装载数据库(不属于Recordset集合)=============Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$'以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据操作员用户名、操作员密码FileName = App.Path & "\'数据库名'"DbIp = "数据库地址"DbName = "数据库名"DbUser = "数据操作员用户名"DbPw = "操作员密码"'以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量'1)连接Access数据库:'-------------------CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =fal se;data source=" & FileName & ";Jet OLEDB:Database Password=" & DbPw'2)连接Oracle数据库:'-------------------CnStr = "PROVIDER=MSDAORA.1;Password=" & DbPw & ";User ID=" & DbUser & ";Data Source=" & FileName & ";Persist Security Info=True"'其中:'PASSWORD: 密码'User ID: 用户号'Data Source: 数据库名'Persist Security Info:'Provider:'3)连接VF的DBF库:'----------------CnStr = "PROVIDER=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=" & DbUser & ";SourceDB=" & FileName & ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"'4)连接SQL的数据库'------------------CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" & DbUser & ";pwd=" & DbPw & ";DRIVER=SQL Server;DATABASE=" & DbName & ";WSID=GQS OFT;SERVER=" &DbIP'也可以使用这段简易代码 CnStr = "Provider=SQLOLEDB;Data Source=" & Db Ip & ";DATABASE=" & DbName & ";UID=" & DbUser & ";pwd=" & DbPwConn.Open cnstr '使用 Connection 集合的 Open 方法与数据库建立连接2、Recordset集合的常用方法=========================='1)打开一个表'------------Sql = "select * from 表名" 'SQL查询语句Set rs = New ADODB.Recordset '新建一个实例rs.Open Sql, conn '使用 Open 方法打开数据库中的一个表'注意,这种打开方式只能使用 rs.MoveNext (即,向后移动行坐标)而不能像其他方向,并且不能修改数据内容''rs.Open Sql, conn,1 '虽然只加了个“1”,但这种方法可以向任何方向移动行坐标。

VB数据库应用实例教程

VB数据库应用实例教程

Visual Basic 6.0实用技术
任务2 数据维护窗口的设计
〖准备知识〗
〖3〗MonthView控件 选择【工程】的【部件(0)…】选项即可打开“部件”对话框,找到并选 中选中“Microsoft Windows Common Controls-2 6.0 (SP3)”即可将 MonthView控件添加到工具箱中。 工具箱中的MonthView控件为: 〖4〗数据表Student的属性、类型和宽度等信息如表所示:
DriveExists FileExists FolderExists GetDrive GetFolder GetFile MoveFile MoveFolder
指定驱动器是否存在 指定文件是否存在 指定文件夹是否存在 返回与该驱动器相对应的 Drive对象 返回与该文件夹相对应的 Folder对象 返回与该文件相对应的File对 象 移动文件 移动文件夹
Visual Basic 6.0实用技术
第四章 数据库应用实例
Visual Basic 6.0实用技术
常见的数据库有Microsoft Access、Microsoft SQL SERVER、Oracle、 Sybase。 以下是数据库中常用的术语: 记录(Record):记录是存放数据的基本单位,一个记录就是一条完整的信 息; 字段(Field):每个记录由若干字段组成; 数据表(Table):记录的集合构成一个数据表; 数据库(Database):若干数据表构成一个数据库。 常用数据库访问技术: (1)DAO(Data Access Object)数据访问对象:DAO是Microsoft Jet数 据库引擎数据访问对象,是第一个面向对象的接口,有着极为广泛的应用。 (2)ODBC是一种底层数据访问技术,允许Visual Basic通过ODBC连接到其 他数据库。 (3)OLE DB(Object Linking and Embedding Database)是新的低层接 口,Microsoft将用它取代ODBC作为连接数据库的主要低层数据访问技术。 (4)ADO是新近发展的数据库访问技术,ADO提供了在OLE DB中不能直接访 问的函数。

vb数据库编程实例

vb数据库编程实例

vb数据库编程实例VB数据库编程实例:实现学生信息管理系统在计算机编程中,数据库是一项关键技术,用于有效地存储和管理数据。

VB(Visual Basic)是一种广泛使用的编程语言,可以轻松地与数据库进行交互。

本文将详细介绍如何使用VB进行数据库编程,以一个学生信息管理系统的实例为例。

第一步:建立数据库首先,我们需要建立一个数据库来存储学生的信息。

在本实例中,我们将使用Microsoft Access数据库。

打开Microsoft Access并创建一个新的数据库文件。

然后,创建一个新的数据表,其中列的字段如下:- 学生ID(StudentID):主键,唯一标识一个学生- 姓名(Name):学生的全名- 年龄(Age):学生的年龄- 专业(Major):学生所在的专业- 成绩(Grade):学生的总评成绩保存数据库并记录其路径,以便在VB中进行引用。

第二步:创建VB项目打开Visual Studio或任何其他VB开发环境,创建一个新的VB 项目。

命名为“学生信息管理系统”或其他适当的名称。

第三步:连接数据库在VB中连接数据库需要使用。

首先,我们需要导入System.Data和System.Data.OleDb命名空间。

然后,在VB代码中添加以下代码片段来连接到数据库:vbDim connStr As String ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<数据库路径>"Dim conn As New OleDbConnection(connStr)将`<数据库路径>`替换为第一步中保存的数据库文件路径。

第四步:加载学生信息接下来,我们将在VB中加载学生信息。

添加一个按钮控件到窗体上,并将其命名为“加载”。

然后,为该按钮的Click事件添加以下代码:vbPrivate Sub LoadButton_Click(sender As Object, e As EventArgs) Handles LoadButton.ClickDim selectQuery As String = "SELECT * FROM Students"Dim adapter As New OleDbDataAdapter(selectQuery, conn)Dim dataSet As New DataSet()adapter.Fill(dataSet, "Students")DataGridView1.DataSource =dataSet.T ables("Students")End Sub在此代码中,我们执行一个简单的查询,从数据库中检索所有学生的信息。

初识vb数据库开发之实例5(数据查询)

初识vb数据库开发之实例5(数据查询)

初识vb数据库开发之实例5(数据查询)设计分析一般是先数据库查询有三种方法方法一:使用查询参数构造SQL Select语句,然后使用ADO Command 对象或RecordSet 执行查询语句方法二:使用ADOCommand对象创建参数查询。

方法三:先执行Select语句获取数据库数据,将其存放到RecordSet对象中,然后执行Recordset对象的Find方法查找符合条件的记录,或者设置Recordset对象的Filter属性筛选符合条件的记录技术要领MSFlexGrid控件的AddItem 方法用于向控件添加一行数据。

语法:object.AddItem (string,index)其中,object为MSFlexGrid控件名称,string为包含数据的字符串。

如果需要同时添加行中的多列数据,可使用制表符(vbTab)分隔字符串。

index为新增加行在控件中的位置,第一行的index为0,如果省略index,则新增行成为控件最后一行清除MSFlexGrid控件中的数据可使用clear方法,如:MSFlexGrid1.clear也可以使用RemoveItem方法来删除指定的行,如删除第2行MSFlexGrid1.RemoveItem(2)使用command对象创建参数查询步骤:(1)创建command对象,使用?作为select语句中的查询参数。

如:mandtext="select*from 系统用户where 用户名like?"(2)使用command对象CreatParameter方法创建参数对象,然后将其添加到command对象的Parameters集合中如:创建一个名为“用户名”的参数对象,然后将其添加到command对象objcmd的Parameters集合中1.dim Parm as new parameter2.3.set parm =objcmd.createparameter("用户名",advarchar,adparaminput,10)4.5.objcmd.parameters.append parm6.(3)设置查询参数的值。

vb连接sql数据库的模块以及使用实例

vb连接sql数据库的模块以及使用实例

打开VB6.0,新建工程SQL_data,新建一个EXE,并添加一个模块。

如图一:添加引用和部件(如下两图)蓝色的两个,是要选中打勾的。

注意,一个是引用”,一个是部件”。

:添加一个模块Data_Sql,并把图下面的复制粘贴到模块中。

[)图表① IM (X )外接程序型 窗口⑩帮由QD _白X'连接SQL 的模块Public conn As ADODB.ConnectionPublic rs As ADODB.RecordsetPublic addFlag As Boolean '声明部分Public Function OpenCn(ByVai Cip As String, ByVai users As String, ByVai pw As String) As Boolean '连接模块填写数据库等信息Dim mag As StringOn Error GoTo strerrmagSet conn = New ADODB.Connectionconn.Connection Timeout = 25 conn .Provider = "sqloledb"conn .Properties("data source").Value = Cip '服务器的名字conn.Properties("initial catalog").Value = "pubs"'库名 'conn.Properties("integrated security").V alue= "SSPI"'登陆类型conn.Properties("user id").V alue = users'SQL 库名conn.Properties("password").Value = pw 密码'sql = "Provider=SQLOLEDB.1;Persist Security In fo=False;User ID=sa;password=;l nitialCatalog=pubs;Data Source=127.0.0.1"'如果不用这个模块也行可以,这一句便是常用的引 擎。

9个vb6 + sql2000的数据库系统实例源程序

9个vb6 + sql2000的数据库系统实例源程序

9个vb6 + sql2000的数据库系统实例源程序VB6和SQL2000是一种经典的数据库系统开发组合,VB6作为一种编程语言,可以用于创建Windows应用程序,而SQL2000则是一种强大的关系型数据库管理系统,用于存储和管理大量数据。

在本文中,我们将介绍9个不同的VB6和SQL2000的数据库系统实例,并进行详细的说明。

1.学生管理系统这个实例是一个简单的学生管理系统,它可以用于存储和管理学生的基本信息,包括学生的姓名、学号、年龄等。

通过VB6的界面,可以实现学生信息的录入、查询、编辑和删除等功能。

2.图书管理系统这个实例是一个用于管理图书信息的系统,它可以存储和管理图书的基本信息,包括书名、作者、出版社等。

通过VB6的界面,可以实现图书信息的录入、查询、编辑和删除等功能。

3.购物系统这个实例是一个简单的购物系统,它可以用于管理商品信息和顾客的购买记录。

通过VB6的界面,顾客可以浏览和搜索商品,选择商品并添加到购物车中,然后结算和下单。

4.订餐系统这个实例是一个简单的订餐系统,它可以用于顾客选择菜品并下单,然后厨房进行菜品制作和配送。

通过VB6的界面,顾客可以浏览菜单,选择菜品和数量,然后下单。

厨房人员可以通过VB6的界面查看菜品订单和制作进度。

5.酒店管理系统这个实例是一个用于管理酒店房间和客户信息的系统,它可以存储和管理房间的基本信息,包括房间号、类型、价格等。

通过VB6的界面,可以实现房间的预订、查询、编辑和取消等功能。

6.学生成绩管理系统这个实例是一个用于管理学生成绩信息的系统,它可以存储和管理学生的考试成绩。

通过VB6的界面,可以实现学生成绩的录入、查询、编辑和删除等功能。

7.银行管理系统这个实例是一个简单的银行管理系统,它可以用于存储和管理客户的基本信息和银行账户信息。

通过VB6的界面,可以实现客户信息的录入、查询、编辑和删除等功能。

8.售后服务系统这个实例是一个简单的售后服务系统,它可以用于管理产品售后服务的记录和处理。

VB数据库操作实例

VB数据库操作实例

VB6.0 数据库操作实例2008年02月22日 05:49VB数据库操作对很多初学者朋友感到比较吃力,目前教材中的实例对数据库操作都比较单一,很多朋友提议我做一个包括浏览、添加、修改、删除功能的数据库操作实例,下面这个实例就是一个这样的数据库操作实例。

《书库管理系统》是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作,使用数据链接控件Adodc链接数据库、数据显示控件MSHFlexGrid显示数据库中的记录。

在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,我们必须点击菜单中的【工程】-【部件】,在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了。

其中Adodc控件的ConnectionString属性值是:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=家庭书架.mdb;Persist Security Info=False",它设置链接了“家庭书架.mdb”这个Access数据库,RecordSourc属性值是:"select 图书登记表.ID,图书登记表.名称,图书登记表.书号,图书登记表.作者,图书登记表.出版社,图书登记表.出借状态,出借记录.借书人,出借记录.电话,出借记录.地址,图书登记表.备注,图书登记表.出借记录 from 图书登记表,出借记录 where 图书登记表.ID=出借记录.zhuID ORDER BY 图书登记表.ID",因为在“家庭书架.mdb”数据库中包含"图书登记表"和"出借记录"二个数据表,这是多表链接的典型的SQL语句。

vb数据库操作实例培训资料

vb数据库操作实例培训资料

v b数据库操作实例第一部分:vb数据库操作实例vb神童教程(续)--编写一个小型的信息管理系统vb神童教程(续)--准备数据库vb神童教程(续)--设计系统的界面及对象的属性vb神童教程(续)--为对象添加事件代码vb神童教程(续)--编写一个小型的信息管理系统受委托为编程入门网做一个简单的vb操作数据库的实例,来演示一下如何用vb向数据库中添加、修改、删除记录这些操作。

我觉得自己是比较菜的,几年来别人都在进步,只有我还在原地踏步。

不过没有办法,我们这一圈人里现在只有我机器上还有vb6,勉为其难,只有尝试一下了。

如果我写的这点幼稚的东西能为想要了解vb数据库操作的朋友提供哪怕是一丁点儿的参考和帮助,将是我最为高兴的事情,同时也希望高手不要见笑。

我做的这个实例名为“编程入门网网址管理系统”,算是一个小型的信息管理系统吧。

该系统后台使用的是Access数据库,程序中使用ADO代码链接的形式连接Access。

该系统具有向数据库中添加、修改、删除记录的功能,进行某项操作后能够实时刷新显示数据。

并在程序中加了相应的代码对输入的数据进行合法性校验,以避免输入错误的数据造成程序运行不正常,程序运行时各个操作及退出系统时均有友好的提示框请用户确认。

所有代码均在Windows2003+Vusual Basic 6.0环境下调试通过。

系统运行时如下图:vb神童教程(续)--准备数据库我用的是Access 2003,因为需要讲解的仅仅是数据的添加、修改及删除,因此单数据库、单表就够了。

如果以后您要编写更复杂一些的信息管理系统而涉及到多表操作,则您还需要补充一些关系数据库方面的知识,比如实体、一对一联系、一对多联系等等;此外,对sql语言也需要有所了解。

具体您可以参考:数据库基础知识ABC。

首先,在“我的电脑”的e盘新建一个名为vb文件夹,先打开Access,新建一个名为Access_db的数据库(Access数据库文件的扩展名是.mdb),保存到刚才建立的文件夹中,则以后在程序中调用数据源的位置为E:\vb\Access_db.mdb。

VB数据库编程技术实例

VB数据库编程技术实例

VB数据库编程技术一 ODBC概述在传统的数据库管理系统中,每个数据库管理系统都有自己的应用程序开发接口(API),为了解决此问题,微软公司开发了ODBC(Open DataBase Connectivity,即开放数据库互连)。

ODBC 是一套开放数据库系统应用程序接口规范,目前它已成为一种工业标准,它提供了统一的数据库应用编程接口(API),为应用程序提供了一套高层调用接口规范和基于动态连接库的运行支持环境。

使用ODBC开发数据库应用时,应用程序调用的是标准的ODBC函数和SQL语句,屏蔽了DBMS之间的差异,数据库底层操作由各个数据库的驱动程序完成。

因此应用程序有很好的适应性和可移植性,并且具备了同时访问多种数据库管理系统的能力,从而彻底克服了传统数据库应用程序的缺陷。

主要任务包括:建立与数据源的连接;向数据源发送SQL请求;断开与数据源的连接数据源数据源是指任一种可以通过ODBC连接的数据库管理系统,它包括要访问的数据库和数据库的运行平台。

数据源名掩盖了数据库服务器或数据库文件间的差别,通过定义多个数据源,每个数据源指向一个服务器名,就可在应用程序中实现同时访问多个DBMS的目的。

数据源(Data Source Name,简称DSN)是驱动程序与DBS连接的桥梁,数据源不是DBS,而是用于表达一个ODBC驱动程序和DBMS特殊连接的命名。

在连接中,用数据源名来代表用户名、服务器名、所连接的数据库名等,可以将数据源名看成是与一个具体数据库建立的连接。

数据源分为以下三类:(1)用户数据源:用户创建的数据源,称为“用户数据源”。

此时只有创建者才能使用,并且只能在所定义的机器上运行。

任何用户都不能使用其他用户创建的用户数据源。

(2)系统数据源:所有用户和在Windows NT下以服务方式运行的应用程序均可使用系统数据源。

(3)文件数据源:文件数据源是ODBC 以上版本增加的一种数据源,可用于企业用户,ODBC驱动程序也安装在用户的计算机上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一部分:vb数据库操作实例vb神童教程(续)--编写一个小型的信息管理系统vb神童教程(续)--准备数据库vb神童教程(续)--设计系统的界面及对象的属性vb神童教程(续)--为对象添加事件代码vb神童教程(续)--编写一个小型的信息管理系统受委托为编程入门网做一个简单的vb操作数据库的实例,来演示一下如何用vb 向数据库中添加、修改、删除记录这些操作。

我觉得自己是比较菜的,几年来别人都在进步,只有我还在原地踏步。

不过没有办法,我们这一圈人里现在只有我机器上还有vb6,勉为其难,只有尝试一下了。

如果我写的这点幼稚的东西能为想要了解vb数据库操作的朋友提供哪怕是一丁点儿的参考和帮助,将是我最为高兴的事情,同时也希望高手不要见笑。

我做的这个实例名为“编程入门网网址管理系统”,算是一个小型的信息管理系统吧。

该系统后台使用的是Access数据库,程序中使用ADO代码链接的形式连接Access。

该系统具有向数据库中添加、修改、删除记录的功能,进行某项操作后能够实时刷新显示数据。

并在程序中加了相应的代码对输入的数据进行合法性校验,以避免输入错误的数据造成程序运行不正常,程序运行时各个操作及退出系统时均有友好的提示框请用户确认。

所有代码均在Windows 2003+Vusual Basic 6.0环境下调试通过。

系统运行时如下图:vb神童教程(续)--准备数据库我用的是Access 2003,因为需要讲解的仅仅是数据的添加、修改及删除,因此单数据库、单表就够了。

如果以后您要编写更复杂一些的信息管理系统而涉及到多表操作,则您还需要补充一些关系数据库方面的知识,比如实体、一对一联系、一对多联系等等;此外,对sql语言也需要有所了解。

具体您可以参考:数据库基础知识ABC。

首先,在“我的电脑”的e盘新建一个名为vb文件夹,先打开Access,新建一个名为Access_db的数据库(Access数据库文件的扩展名是.mdb),保存到刚才建立的文件夹中,则以后在程序中调用数据源的位置为E:\vb\Access_db.mdb。

然后在Access_db.mdb中建立一个名为wzdz的表(wzdz是“网站地址”的首字母缩写), 然后在wzdz表中添加网站名称、网站地址及网站描述三个字段,三个字段的属性是相同的,如下:▲数据类型:文本。

▲字段大小:50▲有效性规则:无。

▲必填字段:否▲允许空字符串:否▲索引:无“编号”这个字段使用的是Access的自动编号,并将其作为主键。

也就是说,您在表中设置以上三个字段即可,设置完毕保存表时,按Access的提示添加主键,Access会自动为您搞定。

具体操作您可以参考:vb神童教程(续)--vb连接Access数据库实例这样在建立了数据库及表结构之后,即使是调用没有记录的空库,系统也可以无差错运行,可以在运行时通过“添加记录”按钮向数据库中添加记录。

不过由于数据库是空的,系统第一次运行时数据显示控件没有数据可显示,显得空荡荡的,不太美观哦。

为了方便起见,我们在Access中给wzdz表中预先添加两条初始记录:添加的方法很简单:在Access的设计器中直接双击wzdz表名,在出来的窗口中添加即可。

添加时注意:因为我们使用的是Access的自动编号做主键,所以在添加时不用理“编号”这个字段,直接添加后三个字段即可。

下一步的工作,是设计系统的界面及设置各个对象的属性。

vb神童教程(续)--设计系统的界面及对象的属性本系统是一个很简单的数据库操作实例,能够对数据库的添加、修改及删除记录这几个基本的操作。

系统使用数据显示控件MSHFlexGrid显示数据库中的记录,使用数据链接控件Adodc链接数据库作为MSHFlexGrid的数据源,使用文本框来接收系统运行时用户输入的数据。

步骤如下:一、启动vb6,新建一个标准exe工程,并将工程中的form1的caption属性设置为“编程入门网网址管理系统”,width属性值设为7950,height属性值设为4620。

二、向窗体中添加一个Adodc控件。

如果在工具箱中找不到Adodc控件,可以右击工具箱,选择“部件...”菜单项,然后在“部件”窗口的“控件”选项卡中选中“Microsoft ADO Data Control6.0(OLEDB)”。

在VB的属性窗口我们对Adodc控件的三个个属性值进行编辑,其余属性值使用默认的即可:1、ConnectionString属性值设为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\vb\Access_db.mdb;Persist Security Info=False这个属性设置了连接Access_db.mdb这个数据库。

2、RecordSourc属性值设为:select * from wzdz这个属性值中的sql语句的作用是查询出wzdz表中的所有记录。

3、Visible属性值设为False,作用是使其在运行时不可见。

三、向窗体添加一个MSHFlexGrid控件,如果工具箱中没有MSHFlexGrid控件,可以右击工具箱,选择“部件...”菜单项,然后在“部件”窗口的“控件”选项卡中选中“Microsoft Hierarchical FlexGrid Control 6.0 ”。

然后在vb 的属性窗口中将MSHFlexGrid控件的名称修改为MS1,如下图:然后对MSHFlexGrid控件进行如下设置:1、DataSource属性:在vb的属性窗口中将其值设为Adodc1,即使用Adodc控件作为其数据源。

2、BackColorBkg属性:在vb的属性窗口中将其值设为&H00FFE0E0&,这是设置的MSHFlexGrid控件的底色。

3、BackColorFixed属性:在vb的属性窗口中将其值设为&H00C0FFFF&,这是设置的MSHFlexGrid控件的显示标题的底色。

4、width属性:在vb的属性窗口中将其值设为7695.5、Height属性:在vb的属性窗口中将其值设为2175.6、右击MSHFlexGrid控件,在弹出的菜单中选“属性”,在弹出的“属性页”对话框的在“通用”选项卡中修改行为4,修改列为4,修改固定行为0,修改固定列为0。

如果数据链接正常,在“属性页”对话框的“带区”选项卡中可以看到列标题和列名称已经设置了,这里注意应该将“带区”选项卡中的“列标头”选项勾选上,否则运行时无法显示列标题,如下图。

“属性页”对话框的其它部分使用默认值即可。

四、向窗体中添加4个Label控件(标签),在vb的属性窗口为它们设置以下属性:1、caption属性:分别设置为网站名称、网站地址、网站描述及编号。

2、Alignment属性:均设为“2-Center”。

3、AutoSize属性:均设为True。

五、向窗体中添加4个TextBox控件(文本框),并调整它们的位置成一排与4个标签相对应,即:网站名称→Text1,网站地址→Text2,网站描述→Text3,编号→Text4。

六、向窗体中添加4个CommandButton控件(命令按钮),将它们的caption属性分别设置为“添加记录”、“修改记录”、“删除记录”和“退出系统”,并调整它们的位置成一排,放在文本框的下方。

七、在两排文本框和命令按钮中间,添加一个Line控件,适当拖动其两端的控制点将长短调整至适当,并将其BorderColor属性性设为&H00C00000&,作用是把文本框和命令按钮隔开,这样在视觉上似乎能好看些。

八、所有控件设置完毕后,界面如下图所示:下一步的工作,是为对象添加事件代码。

vb神童教程(续)--为对象添加事件代码一、form1的load事件代码:Private Sub Form_Load()Form1.MS1.ColWidth(0) = 600Form1.MS1.ColWidth(1) = 1000Form1.MS1.ColWidth(2) = 2300Form1.MS1.ColWidth(3) = 4000Form1.Text1.Text = ""Form1.Text2.Text = ""Form1.Text3.Text = ""Form1.Text4.Text = ""End Sub主要是在系统初始化时设置MSHFlexGrid控件的列宽,并将文本框置空。

二、“添加记录”按钮(command1)的click事件代码:Private Sub Command1_Click()Dim sc As IntegerIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then'即网站名称、网站地址和网站描述的内容必须填全了才打开数据库连接写入数据'由于系统数据库设计为“编号”字段采用的是Access的自动编号'因此在添加记录时不接收编号的数据,由Access自动加编号MsgBox ("请输入完整的网站信息")Elsesc = MsgBox("确实要添加这条记录吗?", vbOKCancel, "提示信息")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim Str1 As StringDim Str2 As StringDim Str3 As StringStr1 = "Provider=Microsoft.Jet.OLEDB.4.0;"Str2 = "Data Source=E:\vb\Access_db.mdb;"Str3 = "Jet OLEDB:Database Password="conn.Open Str1 & Str2 & Str3strSQL = "select * from wzdz"rs.Open strSQL, conn, 3, 3rs.AddNewrs!网站名称 = Text1.Textrs!网站地址 = Text2.Textrs!网站描述 = Text3.Textrs.Updaters.Closeconn.CloseMsgBox ("添加记录成功!")Adodc1.Refresh'刷新数据源,MSHFlexGrid控件会实时刷新显示数据End If'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End IfEnd Sub三、“修改记录”按钮(command2)的click事件代码:Private Sub Command2_Click()If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then'编号字段是Access的自动编号,为自然数'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程 MsgBox "记录号是大于0的自然数,请输入正确的编号!"Exit SubEnd IfIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then '对三个文本框的内容进行校验,不接收空值MsgBox "请输入完整的网站信息!"Exit SubEnd IfDim sc As Integersc = MsgBox("确实修改这条记录吗?", vbOKCancel, "提示信息")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim Str1 As StringDim Str2 As StringDim Str3 As StringStr1 = "Provider=Microsoft.Jet.OLEDB.4.0;"Str2 = "Data Source=E:\vb\Access_db.mdb;"Str3 = "Jet OLEDB:Database Password="conn.Open Str1 & Str2 & Str3strSQL = "select * from wzdz where 编号=" & Val(Text4.Text) & "" rs.Open strSQL, conn, 3, 3If rs!编号 = Val(Text4.Text) Then'由于系统数据库使用的是自动编号作为主键'因此以编号字段的内容作为判断的依据'如果rs!编号 = Val(Text4.Text)说明数据库中有此记录,'才会修改其它三个字段的内容'否则给出“不存在此记录”的提示信息并关闭数据连接rs!网站名称 = Text1.Textrs!网站地址 = Text2.Textrs!网站描述 = Text3.Textrs.Updaters.Closeconn.CloseMsgBox ("修改记录成功!")Adodc1.Refresh '刷新数据源,MSHFlexGrid控件会实时刷新显示数据 ElseMsgBox ("不存在此记录!")Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""rs.Closeconn.CloseExit SubEnd IfEnd If'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End Sub四、“删除记录”按钮(command3)的click事件代码:Private Sub Command3_Click()If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then'编号字段是Access的自动编号,为自然数'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程MsgBox "编号是大于0的自然数,请输入正确的编号!"Exit SubEnd IfDim sc As Integersc = MsgBox("确实要删除这个记录吗?", vbOKCancel, "删除确认!")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim Str1 As StringDim Str2 As StringDim Str3 As StringStr1 = "Provider=Microsoft.Jet.OLEDB.4.0;"Str2 = "Data Source=E:\vb\Access_db.mdb;"Str3 = "Jet OLEDB:Database Password="conn.Open Str1 & Str2 & Str3strSQL = "select * from wzdz where 编号=" & Val(Text4.Text) & ""rs.Open strSQL, conn, 3, 3If rs!编号 = Val(Text4.Text) Then'由于系统数据库使用的是自动编号作为主键'因此以编号字段的内容作为判断的依据'如果rs!编号 = Val(Text4.Text)说明数据库中有此记录并进行删除操作 '否则给“不存在此记录”的提示信息并关闭数据连接rs.Deleters.Closeconn.CloseMsgBox ("删除记录成功!")Adodc1.Refresh '刷新数据源,MSHFlexGrid控件会实时刷新显示数据 ElseMsgBox ("不存在此记录!")Text4.Text = ""rs.Closeconn.CloseExit SubEnd IfEnd If'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End Sub五、“退出系统”按钮(command4)的click事件代码:Private Sub Command4_Click()Dim sc As Integersc = MsgBox("确实要退出系统吗?", vbOKCancel, "提示信息")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 EndEnd IfEnd Sub六、添加完事件代码之后,我们这个实例至此完成,运行一下吧!Private Sub Form_Load()Form1.MS1.ColWidth(0) = 600Form1.MS1.ColWidth(1) = 1000Form1.MS1.ColWidth(2) = 2300Form1.MS1.ColWidth(3) = 4000Form1.Text1.Text = ""Form1.Text2.Text = ""Form1.Text3.Text = ""Form1.Text4.Text = ""End SubPrivate Sub Command1_Click()Dim sc As IntegerIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then'即网站名称、网站地址和网站描述的内容必须填全了才打开数据库连接写入数据'由于系统数据库设计为“编号”字段采用的是Access的自动编号'因此在添加记录时不接收编号的数据,由Access自动加编号MsgBox ("请输入完整的网站信息")Elsesc = MsgBox("确实要添加这条记录吗?", vbOKCancel, "提示信息")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim Str1 As StringDim Str2 As StringDim Str3 As StringStr1 = "Provider=Microsoft.Jet.OLEDB.4.0;"Str2 = "Data Source=D:\VBporj\accessdb\caiwu.mdb;"Str3 = "Jet OLEDB:Database Password="conn.Open Str1 & Str2 & Str3strSQL = "select * from Access_db"rs.Open strSQL, conn, 3, 3rs.AddNewrs("网站名称") = Text1.Textrs("网站地址") = Text2.Textrs("网站描述") = Text3.Textrs.Updaters.Closeconn.CloseMsgBox ("添加记录成功!")Adodc1.Refresh'刷新数据源,MSHFlexGrid控件会实时刷新显示数据End If'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End IfEnd SubPrivate Sub Command2_Click()If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then'编号字段是Access的自动编号,为自然数'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程MsgBox "记录号是大于0的自然数,请输入正确的编号!"Exit SubEnd IfIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then'对三个文本框的内容进行校验,不接收空值MsgBox "请输入完整的网站信息!"Exit SubEnd IfDim sc As Integersc = MsgBox("确实修改这条记录吗?", vbOKCancel, "提示信息")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim Str1 As StringDim Str2 As StringDim Str3 As StringStr1 = "Provider=Microsoft.Jet.OLEDB.4.0;"Str2 = "Data Source=D:\VBporj\accessdb\caiwu.mdb;"Str3 = "Jet OLEDB:Database Password="conn.Open Str1 & Str2 & Str3strSQL = "select * from Access_db where 编号=" & Val(Text4.Text) & "" rs.Open strSQL, conn, 3, 3If rs!编号= Val(Text4.Text) Then'由于系统数据库使用的是自动编号作为主键'因此以编号字段的内容作为判断的依据'如果rs!编号= Val(Text4.Text)说明数据库中有此记录,'才会修改其它三个字段的内容'否则给出“不存在此记录”的提示信息并关闭数据连接rs!网站名称= Text1.Textrs!网站地址= Text2.Textrs!网站描述= Text3.Textrs.Updaters.Closeconn.CloseMsgBox ("修改记录成功!")Adodc1.Refresh '刷新数据源,MSHFlexGrid控件会实时刷新显示数据ElseMsgBox ("不存在此记录!")Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""rs.Closeconn.CloseExit SubEnd IfEnd If'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End SubPrivate Sub Command3_Click()If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then'编号字段是Access的自动编号,为自然数'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程MsgBox "编号是大于0的自然数,请输入正确的编号!"Exit SubEnd IfDim sc As Integersc = MsgBox("确实要删除这个记录吗?", vbOKCancel, "删除确认!")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim Str1 As StringDim Str2 As StringDim Str3 As StringStr1 = "Provider=Microsoft.Jet.OLEDB.4.0;"Str2 = "Data Source=D:\VBporj\accessdb\caiwu.mdb;"Str3 = "Jet OLEDB:Database Password="conn.Open Str1 & Str2 & Str3strSQL = "select * from Access_db where 编号=" & V al(Text4.Text) & "" rs.Open strSQL, conn, 3, 3If rs!编号= Val(Text4.Text) Then'由于系统数据库使用的是自动编号作为主键'因此以编号字段的内容作为判断的依据'如果rs!编号= Val(Text4.Text)说明数据库中有此记录并进行删除操作'否则给“不存在此记录”的提示信息并关闭数据连接rs.Deleters.Closeconn.CloseMsgBox ("删除记录成功!")Adodc1.Refresh '刷新数据源,MSHFlexGrid控件会实时刷新显示数据ElseMsgBox ("不存在此记录!")Text4.Text = ""rs.Closeconn.CloseExit SubEnd IfEnd If'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End SubPrivate Sub Command4_Click()Dim sc As Integersc = MsgBox("确实要退出系统吗?", vbOKCancel, "提示信息")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1EndEnd IfEnd Sub。

相关文档
最新文档