SQL基础语法.docx
- 文档编号:3782234
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:19
- 大小:22.69KB
SQL基础语法.docx
《SQL基础语法.docx》由会员分享,可在线阅读,更多相关《SQL基础语法.docx(19页珍藏版)》请在冰豆网上搜索。
SQL基础语法
增:
insertinto表名(字段名1,字段名2。
。
。
)values(值1,值2。
。
。
)
注意:
括号内字段名数量要和值数量一样
insertinto表名values(值1,值2。
。
。
)
注意:
表中字段数量要和值数量一样
insertinto表名values(select*from另一张表)
注意:
2张表字段要一样
删:
delete表名注意:
这是全部删除
delete表名where条件。
。
。
注意:
这是有条件删除
改:
update表名set字段1=值1,字段2=值2。
。
。
注意:
这是根据值更新
update表名set字段1=值1,字段2=值2。
。
。
from其他表
注意:
这是用另一张表来更新
update表名set字段1=值1,字段2=值2。
。
。
from其他表where条件。
。
。
注意:
这是用另一张表有条件更新
查:
select*from表名
注意:
这是查询全部
select*from表名where条件。
。
。
注意:
这是由条件查询
PrivateSubCommand1_Click()
Fori=0To5
Text1(i).Text=""
Nexti
Adodc1.RecordSource="select*from"&s1&"orderby编号"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
Adodc1.Recordset.MoveLast
Text1(0).Text="G"+Format((Val(Right(Trim(Adodc1.Recordset.Fields("编号")),4))+1),"0000")
Else
Text1(0).Text="G0001"
EndIf
EndSub
PrivateSubCommand2_Click()
IfAdodc1.Recordset.EOF=FalseThen
c=MsgBox("您确认要删除该记录吗?
",vbOKCancel,"删除提示信息")
Ifc=vbOKThen
Adodc1.Recordset.Delete
Adodc1.RecordSource="select*from人员表"
Adodc1.Refresh
EndIf
Else
MsgBox"当前数据库中没有可删除的数据记录",vbOKOnly,"提示信息"
EndIf
EndSub
PrivateSubCommand3_Click()
IfText1(0).Text=""OrText1
(1).Text=""Then
MsgBox"请选择需要改动的记录信息!
",vbOKOnly,"错误提示"
Else
c=MsgBox("确定要修改该记录吗?
",vbOKCancel,"提示信息")
Ifc=vbOKThen'如果确认修改的话进行修改操作
IfText1
(1).Text=""Then
MsgBox"姓名不能为空值!
",48,"修改信息提示"
Else
'连接所要修改的数据库
con.Open"Provider=SQLOLEDB.1;Password=2752;PersistSecurityInfo=True;UserID=sa;InitialCatalog=sample;DataSource=JAMLEEPC"
'开始修改数据库
con.Execute("UPDATE"&s1&"SET姓名='"&Text1
(1).Text&"',年龄="&Text1
(2).Text&",学历='"&Text1(3).Text&"',年级="&Text1(4).Text&",入学时间='"&Text1(5).Text&"'where编号='"&Trim(Text1(0))&"'")
MsgBox"信息修改成功",64,"修改信息提示"
con.Close
Adodc1.RecordSource="select*from人员表"
Adodc1.Refresh
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand4_Click()
Adodc1.RecordSource="select*from人员表where编号='"+Text1(0).Text+"'"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
MsgBox"该信息已存在,信息保存不成功",64,"保存信息提示"
Else
cc=MsgBox("您确定要保存该信息吗?
",33,"信息保存提示")
Ifcc=vbOKThen
IfText1
(1).Text=""OrText1
(2).Text=""OrText1(3).Text=""OrText1(4).Text=""OrText1(5).Text=""Then
MsgBox"请确认,人员的姓名、年龄、学历、年级和入学时间不能为空",48,"保存信息提示"
Else
con.Open"Provider=SQLOLEDB.1;Password=2752;PersistSecurityInfo=True;UserID=sa;InitialCatalog=sample;DataSource=JAMLEEPC"
con.Execute("insertinto人员表values('"&Text1(0).Text&"','"&Text1
(1).Text&"','"&Text1
(2).Text&"','"&Text1(3).Text&"','"&Text1(4).Text&"','"&Text1(5).Text&"')")
MsgBox"信息修改成功",64,"修改信息提示"
con.Close
Adodc1.RecordSource="select*from人员表"
Adodc1.Refresh
EndIf
Else
EndIf
EndIf
SetDataGrid1.DataSource=Adodc1
EndSub
给你段代码参考下,这个就是添加,删除,修改的代码。
不过我用的是SQL2000你要吧代码稍微修改一下的,呵呵,祝你成功!
如何实现将vsflexgrid中修改的数据反馈到数据库中?
PrivateSubvsflexgrid1_AfterEdit(ByValRowAsLong,ByValColAsLong)
rs.MoveFirst'//rs为记录集
rs.Movevsflexgrid1.Row-1
rs.Edit
Ifvsflexgrid1.text=""Then
rs.Fields(vsflexgrid1.Col-1)=Null
Else
rs.Fields(vsflexgrid1.Col-1)=vsflexgrid1.text
EndIf
rs.Update
endsub
一、增加记录使用for来循环表格行。
fori=1togrid1.rows-1
withrs
.addnew
.fileds(o)=grid1.textmariy(i,0)
.fileds
(1)=grid1.textmariy(i,1)
.fileds
(2)=grid1.textmariy(i,2)
.fileds(3)=grid1.textmariy(i,3)
.update
endwith
next
二、添加行
grid1.additemrow
三、删除当前行
withgrid1
i=.row
.removeitemi
endwith
四、要显示下拉框,可以使用vsflexgrid中列绑定功能
grid1.colcombolist
(1)=grid.buildcombolist(rs,"商品名称")
跟楼上的相比,仅仅是datamode不一样(2-flexDMBoundBatch)
但这样做的优势是非常明显的:
可以撤销包括新增删除在内的所有操作,按保存键才写入数据库
PrivateSubCmdDel_Click()
Iffg.Row<>0Thenfg.RemoveItem(fg.Row)
fg.Refresh
EndSub
PrivateSubCmdAdd_Click()
OnErrorResumeNext
Adodc1.Recordset.AddNew
IfErr.Number<>0ThenMsgBoxErr.Description
EndSub
PrivateSubCmdUpdate()
Adodc1.Recordset.UpdateBatchadAffectAllChapters
EndSub
PrivateSubCmdCancel_Click()
Adodc1.Recordset.CancelBatch
fg.DataRefresh
EndSub
PrivateSubForm_Load()
Adodc1.ConnectionString="FILENAME="&App.Path&"\conn.dsn"
Adodc1.LockType=adLockBatchOptimistic
Adodc1.RecordSource="Your_Tablename"
Setfg.DataSource=Adodc1
EndSub
1、打印vsflexgrid可以使用vsprinter打印控件。
跟vsflexgrid配套使用效果不错。
2、导出EXECL,可以使用grid.savegrid的方法。
用savegrid的方法,在导出execl时,如果碰到类似于银行帐号的列如:
“6465456665”,导到EXECL中就不这样显示了,这个问题还不知道怎么解决?
?
另外也可以写代码(这个方法比较实用,但慢一些):
DimexcelAppAsExcel.Application
SetexcelApp=NewExcel.Application
OnErrorResumeNext
IfexcelAppIsNothingThen
SetexcelApp=CreateObject("Excel.application")
IfexcelAppIsNothingThen
ExitSub
EndIf
EndIf
excelApp.Visible=True
Me.MousePointer=vbHourglass
excelApp.Workbooks.Add
WithexcelApp.ActiveSheet
DimiAsInteger,jAsInteger
Fori=1ToGrid1.rows
Forj=1ToGrid1.Cols
.Cells(i,j).value="'"&Grid1.TextMatrix((i-1),(j-1))'加上“'”号则可以解决上面savegrid中银行帐号的导出问题。
Nextj
DoEvents
Nexti
EndWith
Me.MousePointer=vbDefault
SetexcelApp=Nothing
EndSub
EXCEL同Vsflexgrid通过
最近很多的朋友,都想知道EXCEL怎样同VSflexgrid交换数据。
实际上,利用“复制”、“粘贴”菜单即可实现。
具体如下:
(1)在Vsflexgrid上弹出右键菜单
PrivateSubgrid1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,yAsSingle)
ifButton=2ThenPopupMenumnutccd
EndSub
(2)设置各菜单的内容
A复制
Clipboard.Clear
Clipboard.SetTextgrid1.Clip
B剪切
DimrowcAsLong
DimrowzAsLong
DimcolcAsLong
dimcolzAsLong
dimiaslong
dimsaslong
Ifgrid1.Rows=1ThenExitSub
Clipboard.Clear
Clipboard.SetTextgrid1.Clip
Ifgrid1.RowSel>grid1.rowThen
rowc=grid1.row
rowz=grid1.RowSel
Else
rowc=grid1.RowSel
rowz=grid1.row
EndIf
Ifgrid1.ColSel>grid1.ColThen
colc=grid1.Col
colz=grid1.ColSel
Else
colc=grid1.ColSel
colz=grid1.Col
EndIf
Fori=rowcTorowz
Fors=colcTocolz
grid1.TextMatrix(i,s)=""
Next
Next
C粘贴(精华部分)
DimiAsLong
DimsAsLong
DimmAsLong
DimtAsLong
Ifgrid1.Rows=1ThenExitSub
t=Len(Clipboard.GetText)
Ift=0ThenExitSub
Fori=1Tot
IfMid(Clipboard.GetText,i,1)=Chr(9)Thens=s+1
IfMid(Clipboard.GetText,i,1)=Chr(13)Thenm=m+1
Next
Ifs/(m+1)+grid1.Col>grid1.Cols-1Then
grid1.ColSel=grid1.Cols-1
Else
grid1.ColSel=s/(m+1)+grid1.Col
EndIf
Ifgrid1.row+m>grid1.Rows-1Then
grid1.RowSel=grid1.Rows-1
Else
grid1.RowSel=grid1.row+m
EndIf
grid1.Clip=Clipboard.GetText
VSFlexGrid常用属性或方法:
.FixedRows=1'固定几行
.FixedCols=1&nbs
p;'固定几列
.Editable=True'允许修改
.AllowUserResizing=flexResizeBoth'可调整行/列
.FocusRect=flexFocusNone'无虚框
.SelectionMode=flexSelectionListBox'焦点选中样式
.BackColor=RGB(255,255,255)'单元背景色
.BackColorSel=vbBlue'单元选择色
.BackColorFixed=RGB(208,192,160)'固定单元色
.BackColorAlternate=RGB(255,250,230)'间隔行背景色
.GridColor=RGB(245,240,210)'单元线条色
.ForeColor=RGB(0,0,0)'单元前景色(字符色)
.RowHeightMin=260'最小行高
.RowHeightMax=800'最大行高
.ColHeightMin=50'最小列宽
.ColHeightMax=3000'最大列宽
.ColWidth(Col)=1000'指定列宽
.RowHeight(Row)=260'指定行高
.TextMatrix(Row,Col)="Text"'指定单元字符
.Text="Text"'选定单元字符
.MergeCol(Col)=True'允许合并列
.MergeRow(Row)=True'允许合并行
.MergeCells=0|1|2|3|4|5|6'合并选项
.Cell(选项准则,Row1,Col1,Row2,Col2)'选择部分的相应准则值
.EditCell'当移动到当前单元时自动选择
.EditSelStart'移动到单元时的光标位置
.MousePointer'设置对象的鼠标指针样式O.A=0到15|99
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
几个特殊的属性方法的使用:
FormatString属性:
管道符格式化字符串示例:
下面定义对齐方式同字意,列宽窄同距离
VSG1.FormatString="^中|<左|>右|>右|^中"
+++++++++++++++++++++++++
搜索(查找)表格中符合条件的行:
FindRow属性:
该属性返回一个行值
MsgBoxVSG1.FindRow(关键词,[指定行],[指定列],[敏感],[精度])
关键词:
String,表示要搜索的字符串
指定行/指定列:
Long,表示只在指定的行或列中找
敏感:
Boolean,
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
'限制只能在指定列输入(这里默认倒数第2列)
PrivateSubVSG1_BeforeRowColChange(ByValOldRowAsLong,_
ByValOldColAsLong,ByValNewRowAsLong,_
ByValNewColAsLong,CancelAsBoolean)
VSG1.Editable=flexEDKbd
IfVSG1.Redraw<>flexRDNoneAndNewCol<>VSG1.Cols-2Then
Cancel=True
VSG1.SelectNewRow,VSG1.Cols-2
EndIf
EndSub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
限制不能编辑某些列:
(这里限制第1列和第3列)
PrivateSubVSG1_RowColChange()
IfVSG1.Col=1OrVSG1.Col=3Then
VSG1.FocusRect=flexFocusNone
VSG1.Editable=flexEDNone
'SendKeys"{TAB}"
Else
VSG1.Editable=flexEDKbd
SendKeys"{ENTER}"
EndIf
EndSub
或:
PrivateSubVSG1_RowColChange()
IfVSG1.Col=1OrVSG1.Col=3Then
SendKeys"{RIGHT}"
Else
SendKeys"{ENTER}"
EndIf
EndSub
或:
PrivateSubVSG1_RowColChange()
IfVSG1.Col=1OrVSG1.Col=3Then
VSG1.Editable=flexEDNone
Else
VSG1.Editable=flexEDKbd
VSG1.EditCell'自动选择单元内容
VSG1.EditSelStart=0[选到最前]|1[选到指定]|Len(VSG1.Text)[选到最后]
EndIf
EndSub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
'对齐方式(-1标示所有)
.ColAlignment(-1)=flexAlignLeftCenter|flexAlignCenterCenter|flexAlignRightCenter
示例1:
(最后一行的第3列靠右对齐)
VSG1.SelectVSG1.Rows-1,2
VSG1.CellAlignment=flexAlignRightCenter
示例2:
VSG1.Row=VSG1.Rows-1:
VSG1.Col=1
VSG1.CellAlignment=flexAlignRightCenter
示例3:
VSG1.Cell(flexcpAlignment,VSG1.Rows-1,1,VSG1.Rows-1,3)=flexAlignRightCenter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
本对象拖放:
PrivateSubVSG1_MouseDown(ButtonAsInteger,_
ShiftAsInteger,XAsSingle,YAsSingle)
VSG1.Drag
VSG1.DragIcon=LoadPicture("D:
\Icon.ico")
VSG1.DragRowVSG1.RowSel
EndSub
或从其它对象拖:
PrivateSubVSG2_MouseDown(ButtonAsInteger,_
ShiftAsInteger,XAsSingle,YAsSingle)
VSG2.OLEDrag
VSG1.OLEDropMode=flexOLEDropAutomatic
EndSub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PublicSubVSGridCount(OptionalSelRowAsLong,OptionalSelColAsLong)
DimXAsLong,iAsLong
DimHj1,Hj2,Hj3AsString
Const
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 基础 语法