★将用户名和密码存于数据库中的数据表“用户设置”中,下面是密码验证过程: Cn.ConnectionString = \Security Info=True;User ID=carbide;Initial Catalog=Carbide;Data Source=172.16.13.16\\SQLEXPRESS\ Cn.Open
Dim SqlStr As String
SqlStr = \* from [dbo].[用户设置] where [UN]='\& txtUserName.Text & \And [PW]='\& txtPassword.Text & \ Set Rs = Cn.Execute(SqlStr)
If Not Rs.EOF Then Rs.Close Cn.Close OK = True Me.Hide Else
MsgBox \密码错误,再试一次!\, \登录\ txtPassword.SetFocus txtPassword.SelStart = 0
txtPassword.SelLength = Len(txtPassword.Text) Rs.Close Cn.Close End If
★SQL 查询并取值的问题
Cn.ConnectionString = \Security Info=True;User ID=carbide;Initial Catalog=Carbide;Data Source=172.16.13.16\\SQLEXPRESS\ Cn.Open
Dim SqlStr As String
SqlStr = \* from [dbo].[用户设置] where [UN]='\& txtUserName.Text & \And [PW]='\& txtPassword.Text & \ Set Rs = Cn.Execute(SqlStr)
If Not Rs.EOF Then Dlr = Rs(\姓名\ DlID = txtUserName.Text Rs.Close Cn.Close end if
★如何判断字段值为空
If IsNull(Rs(FgP)) = True And IsNull(Rs(FgKg)) = True Then
y = y + 1 GoTo 11 Else
ComFgYy(x).Text = Yy(y)
TexFgP(x).Text = Rs(FgP).Value TexFgKg(x).Text = Rs(FgKg).Value TexFgQk(x).Text = Rs(FgQk).Value y = y + 1 End If
★更改已有记录 Cn.Open
Dim SqlStr As String
SqlStr = \* from [dbo].[产品质检明细] where [记录号]=\& LshCx Rs.Open SqlStr, Cn, 1, 3
Rs(\记录号\= LshCx Rs(\录入时间\= Now
Rs(\检验时间\= DTPJyrq.Value Rs.update
★删除已有记录 Cn.Open
Dim SqlStr As String
SqlStr = \from [dbo].[产品质检明细] where [记录号]=\& LshCx Rs.Open SqlStr, Cn, 1, 3 Cn.Close
★SQL复制记录
INSERT INTO `table` SELECT * FROM `table` WHERE id=1; 没有主键时候才可以。。有主键时候就要写上列:
INSERT INTO `table`(`a`,`b`,`c`) SELECT `a`,`b`,`c` FROM `table` WHERE id=1;
补充:如果要插入数据的表比前表字段但是也要插入数据,可以用mysql函数产生栏目填充,例如:ABS(1),TRIM('abc')
UPDATE `table` SET a = !a WHERE id = 1;//布爾值取反
UPDATE `table1`,`table2` SET `table1`.id = `table2`.id WHERE `table1`.id = `table2`.id;//更新
★SQL语句查找空值
select * from 表格 where 字段名 is null ★将SQL查找结果导出到EXCEL
Dim xlApp As New Excel.Application Dim xlBook As New Excel.Workbook Dim xlSheet As New Excel.Worksheet Dim m As Integer, n As Integer Dim Ran As String
Set xlApp = CreateObject(\'创建EXCEL应用类
Set xlBook = xlApp.Workbooks.Open(\质检明细100520.xls\'打开EXCEL工作簿
xlApp.Visible = True '设置EXCEL不可见 Set xlSheet = xlBook.Worksheets.Add
ActiveSheet.Name = \产品质日报表\& Format(Now, \H_MM_SS\'打开EXCEL工作表 m = 2
Do While Not Rs.EOF
For n = 0 To Rs.Fields.Count - 1 Ran = x & \& x
xlSheet.Cells(1, n + 1) = Rs.Fields(n).Name xlSheet.Cells(m, n + 1) = Rs(n).Value Next
Rs.MoveNext m = m + 1 Loop
Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing
★VB 中 DataGrid 的使用方法
SqlStr = \* from dbo.代码 where [JDE代码]='\& Trim(Text1(0).Text) & \
Cn.CursorLocation = adUseClient '关键语句,有了这句控件才能显示数据集的内容 Cn.Open
'Rs.Open SqlStr, Cn
Set Rs = Cn.Execute(SqlStr)
If Not Rs.EOF Then
Text1(1).Text = Rs(\牌号\ Text1(2).Text = Rs(\型号\ Text1(3).Text = Rs(\单位\
Set DataGrid1.DataSource = Rs '关键语句,将控件和数据集连接起来 'DataGrid1.ClearFields 'DataGrid1.ReBind Else
MsgBox (\没有找到对应 JDE代码 的信息!\ End If
★ 单击就全选文本框中内容,文本框用到了控件数组(index= 0 to 8) Private Sub Text1_Click(Index As Integer) Text1(Index).SelStart = 0
Text1(Index).SelLength = Len(Text1(Index).Text) End Sub
★在textbox中显示 datagrid 表格中选中单元格所在列的记录
Dim DataBj As Integer '标记表中是否有数据显示, 有为 1 没有 为 0 Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If DataBj = 1 Then
Text1(0).Text = DataGrid1.Columns(\代码\' DataGrid1 Text1(1).Text = DataGrid1.Columns(\牌号\'rs1(\牌号\ Text1(2).Text = DataGrid1.Columns(\型号\'rs1(\型号\
Text1(3).Text = DataGrid1.Columns(\说明\'rs1(\说明\ Text1(4).Text = DataGrid1.Columns(\备注\'rs1(\备注\ Combo1.Text = DataGrid1.Columns(\单位\'rs1(\单位\ ID = DataGrid1.Columns(\'rs1(\End If
注意:DataGrid1_RowColChange 事件在datagrid控件中的内容有改变的时候都会被激活,所以在查询结果显示出来之前该事件就被激活了,会出现好不到记录的提示,为了解决这个问题,需要引入一个变量DataBj 来标记是否已经有查询结果显示在表格中,使当表格中有内容的时候才执行DataGrid1_RowColChange事件中的代码。
★通过SQL语句删除表中重复记录的方法
原理:晒出无重复的记录 将数据导入到另外一个相同的表中(名字不同),再将无重复记录的表的名字改为源表的名字。
INSERT INTO DBO.代码2 ([ID],[JDE代码],[牌号],[型号],[单位],[说明]) SELECT DISTINCT [ID],[JDE代码],[牌号],[型号],[单位],[说明] FROM dbo.代码
★定时任务,使用 Timer控件,在Timer控件的interval属性中设置时间间隔, 单位是 毫秒 (1秒=1000毫秒) 例:Private Sub Timer1_Timer() rs.Requery
DataGrid1.refresh End Sub
★如何获得查询结果的 记录条数
X = Rs.RecordCount 'X就是记录的条数 vb中recordcount返回值总是为-1:
这样就没问题rs.open sqlstr,conn,3,2 这样就有问题rs.open sqlstr,conn,1,2
因为conn后第一个数字是1表示指针只能往前,3表示自由指针 使用RecordCount属性可确定Recordset对象中记录的数目。ADO无法确定记录数时,或者如果提供者或游标类型不支持RecordCount,则该属性返回–1。读已关闭的Recordset上的RecordCount属性将产生错误。
如果Recordset对象支持近似定位或书签(即Supports(adApproxPosition)或Supports(adBookmark)各自返回True),不管是否完全填充该值,该值将为Recordset中记录的精确数目。如果Recordset对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确RecordCount值而严重消耗资源。
Recordset对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount属性将返回-1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回-1或实际计数。
★关闭当前窗口的代码 Unload Me
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VB打开EXCEL的方法解析(4)在线全文阅读。
相关推荐: