vb6中me.mousemouse pointerr=vbhourglass改到vb.net中是怎么样的

在VB中使用水晶报表的一种简易编程方法
在VB中使用水晶报表的一种简易编程方法
  第一步:在VB工程中Project菜单加入"Add Crystal Report 9",报表名使用默认即可。这时Form2(Crystal Rerport自动添加的Form,假设名为Form2)被自动分配了如下代码:
  Option Explicitdim Report as New Cystal1
  Private Sub Form_Load()
  Screen.MousePointer = vbHourglass&&&& '调用水晶报表时置鼠标为沙漏状
  CRViewer91.ReportSource = Report&&&& '该语句的赋值将在后面被修改
  CRViewer91.ViewReportScreen.MousePointer = vbDefault&&&&&& '调用水晶报表完成后置鼠标为默认形状
  End Sub
  Private Sub Form_Resize()
  CRViewer91.Top = 0CRViewer91.Left = 0CRViewer91.Height = ScaleHeightCRViewer91.Width = ScaleWidth
  End Sub&
  第二步:点击Crystal Report设计器的"数据库字段",选定"数据库专家...",然后点"创建新连接",再点"仅字段定义",创建"数据库定义"文件,字段名和宽度和原数据库表保持一致。最后,在数据库字段中获得了相应字段,将其置于报表上,按水晶报表的要求配置。
  第三步:该步骤非常关键,添加一个Modual到工程文件中,定义全局的ADODB变量,实现数据库和水晶报表的动态连接。代码如下:
Public conn As New ADODB.ConnectionPublic rs As New ADODB.Recordset&
  第四步:关于VB程序的ADO数据库连接注意事项,请看下面的打印按钮例程。
  Private Sub Command1_Click()
  Dim connstr As String
  If conn.State = adStateOpen Then conn.Close&&& &&& connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\prtest.Persist Security Info=False"&&& 'prtest.mdb是程序当前目录的测试Access数据库&&& &&& conn.ConnectionString = connstr&&& &&& conn.Open &&& &&& conn.CursorLocation = adUseClient &&& &&& If rs.State = adStateOpen Then rs.Close&&& &&& rs.Open "test", conn, adOpenKeyset, adLockReadOnly&&& '&&& Report.Database.SetDataSource rs, 3, 1& '此行取消&&&
  Form2.Show 1&& '数据库连接完成后,调用Form2水晶报表工程&&& &&& End Sub&
  需要提请大家注意的是,上面代码中的Report.Database.SetDataSource rs, 3, 1是初用水晶报表的程序员容易犯的错误,使用该语句后将造成数据库和水晶报表的连接失败。如何动态调用水晶报表呢?请看第五步。
  第五步:创建水晶报表和数据库数据源的连接,需要修改上面Form2的代码。
  Option Explicit'dim Report as New Cystal1'上面一行取消
  Private Sub Form_Load()
  Dim oApp As New CRAXDRT.ApplicationDim oRpt As CRAXDRT.ReportDim reportName As String'上面三行是新增加的
  Screen.MousePointer = vbHourglass
  reportName = "\rpt\Pr1.rpt"  &&& '定义要引用的rpt文件
  Set oRpt = oApp.OpenReport(App.Path & reportName, 1)
  oRpt.Database.SetDataSource rs&&& '连接水晶报表和数据源oRpt.ReadRecords
  CRViewer91.ReportSource = oRpt& '启用水晶报表的预览功能
  CRViewer91.ViewReportScreen.MousePointer = vbDefault
  End Sub
  Private Sub Form_Resize()
  CRViewer91.Top = 0CRViewer91.Left = 0CRViewer91.Height = ScaleHeightCRViewer91.Width = ScaleWidth
  End Sub
  Private Sub Form_Unload(Cancel As Integer)&&& &&& 'Set Report = Nothing&&& &&& Set rs = Nothing&&& &&& Set conn = Nothing&&& &&& Unload Form2&&& End Sub&
  上面介绍了在VB中使用水晶报表进行报表开发的一种方法,该方法简单易用,适合初学者上手。
&&&主编推荐
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
港口与航道工程建设工程法规及相关知识建设工程经济考试大纲矿业工程市政公用工程通信与广电工程
操作系统汇编语言计算机系统结构人工智能数据库系统微机与接口
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
Powerpoint教程WPS教程
电子政务客户关系管理首席信息官办公自动化大数据
职称考试题目
就业指导签约违约职业测评
招生信息考研政治
网络安全安全设置工具使用手机安全
3DMax教程Flash教程CorelDraw教程Director教程
Dreamwaver教程HTML教程网站策划网站运营Frontpage教程
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
互联网电信IT业界IT生活
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
组织运营财务资本
视频播放文件压缩杀毒软件输入法微博
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&如何用VB6读写数据库中的图片_VB_领测软件测试网
如何用VB6读写数据库中的图片
发表于:来源:作者:点击数:
很多人问关于 VB 6读写 数据库 中的图片的问题,在此有一例,希有所启发。 1,以人名和相关图片为例说明,数据库为Access,有如下字段:Name char,picture OLE object,FileLength Number。当为ms sql 时,将picture改为lob即 可。 2,示例包含control:commo
  很多人问关于6读写中的图片的问题,在此有一例,希有所启发。&&
1,以人名和相关图片为例说明,数据库为Access,有如下字段:Name&&
char,picture OLE object,FileLength Number。当为ms 时,将picture改为lob即
2,示例包含control:commom dialog,picture,listbox。&&
源码如下:&&
Option Explicit&&
Private Declare Function GetTempFileName Lib &kernel32& Alias &GetTempFileNameA&&&
(ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long,&&
ByVal lpTempFileName As String) As Long&&
Private Declare Function GetTempPath Lib &kernel32& Alias &GetTempPathA& (ByVal&&
nBufferLength As Long, ByVal lpBuffer As String) As Long&&
Private Const MAX_PATH = 260&&
Private m_DBConn As ADODB.Connection&&
Private Const BLOCK_SIZE = 10000&&
' Return a temporary file name.&&
Private Function TemporaryFileName() As String&&
Dim temp_path As String&&
Dim temp_file As String&&
Dim length As Long&&
' Get the temporary file path.&&
temp_path = Space$(MAX_PATH)&&
length = GetTempPath(MAX_PATH, temp_path)&&
temp_path = Left$(temp_path, length)&&
' Get the file name.&&
temp_file = Space$(MAX_PATH)&&
GetTempFileName temp_path, &per&, 0, temp_file&&
TemporaryFileName = Left$(temp_file, InStr(temp_file, Chr$(0)) - 1)&&
End Function&&
Private Sub Form_Load()&&
Dim db_file As String&&
Dim rs As ADODB.Recordset&&
' Get the database file name.&&
db_file = App.Path&&
If Right$(db_file, 1) && &\& Then db_file = db_file & &\&&&
db_file = db_file & &dbpict.mdb&&&
' Open the database connection.&&
Set m_DBConn = New ADODB.Connection&&
m_DBConn.Open _&&
&Provider=Microsoft.Jet.OLEDB.4.0;& & _&&
&Data Source=& & db_file & &;& & _&&
&Persist Security Info=False&&&
' Get the list of people.&&
Set rs = m_DBConn.Execute(&SELECT Name FROM People ORDER BY Name&, ,&&
adCmdText)&&
Do While Not rs.EOF&&
lstPeople.AddItem rs!Name&&
rs.MoveNext&&
rs.Close&&
Set rs = Nothing&&
Private Sub Form_Resize()&&
lstPeople.Height = ScaleHeight&&
' Display the clicked person.&&
Private Sub lstPeople_Click()&&
Dim rs As ADODB.Recordset&&
Dim bytes() As Byte&&
Dim file_name As String&&
Dim file_num As Integer&&
Dim file_length As Long&&
Dim num_blocks As Long&&
Dim left_over As Long&&
Dim block_num As Long&&
Dim hgt As Single&&
picPerson.Visible = False&&
Screen.MousePointer = Hourglass&&
DoEvents&&
' Get the record.&&
Set rs = m_DBConn.Execute(&SELECT * FROM People WHERE Name='& & _&&
lstPeople.Text & &'&, , adCmdText)&&
If rs.EOF Then Exit Sub&&
' Get a temporary file name.&&
file_name = TemporaryFileName()&&
' Open the file.&&
file_num = FreeFile&&
Open file_name For Binary As #file_num&&
' Copy the data into the file.&&
file_length = rs!FileLength&&
num_blocks = file_length / BLOCK_SIZE&&
left_over = file_length Mod BLOCK_SIZE&&
For block_num = 1 To num_blocks&&
bytes() = rs!Picture.GetChunk(BLOCK_SIZE)&&
Put #file_num, , bytes()&&
Next block_num&&
If left_over & 0 Then&&
bytes() = rs!Picture.GetChunk(left_over)&&
Put #file_num, , bytes()&&
Close #file_num&&
' Display the picture file.&&
picPerson.Picture = LoadPicture(file_name)&&
picPerson.Visible = True&&
Width = picPerson.Left + picPerson.Width + Width - ScaleWidth&&
hgt = picPerson.Top + picPerson.Height + Height - ScaleHeight&&
If hgt & 1440 Then hgt = 1440&&
Height = hgt&&
Kill file_name&&
Screen.MousePointer = vbDefault&&
Private Sub mnuRecordAdd_Click()&&
Dim rs As ADODB.Recordset&&
Dim person_name As String&&
Dim file_num As String&&
Dim file_length As String&&
Dim bytes() As Byte&&
Dim num_blocks As Long&&
Dim left_over As Long&&
Dim block_num As Long&&
person_name = InputBox(&Name&)&&
If Len(person_name) = 0 Then Exit Sub&&
dlgPicture.Flags = _&&
cdlOFNFileMustExist Or _&&
cdlOFNHideReadOnly Or _&&
cdlOFNExplorer&&
dlgPicture.CancelError = True&&
dlgPicture.Filter = &Graphics Files|*.*.*.*.gif&&&
On Error Resume Next&&
dlgPicture.ShowOpen&&
If Err.Number = cdlCancel Then&&
Exit Sub&&
ElseIf Err.Number && 0 Then&&
MsgBox &Error & & Format$(Err.Number) & _&&
& selecting file.& & vbCrLf & Err.Description&&
Exit Sub&&
' Open the picture file.&&
file_num = FreeFile&&
Open dlgPicture.FileName For Binary Access Read As #file_num&&
file_length = LOF(file_num)&&
If file_length & 0 Then&&
num_blocks = file_length / BLOCK_SIZE&&
left_over = file_length Mod BLOCK_SIZE&&
Set rs = New ADODB.Recordset&&
rs.CursorType = adOpenKeyset&&
rs.LockType = adLockOptimistic&&
rs.Open &Select Name, Picture, FileLength FROM People&, m_DBConn&&
rs.AddNew&&
rs!Name = person_name&&
rs!FileLength = file_length&&
ReDim bytes(BLOCK_SIZE)&&
For block_num = 1 To num_blocks&&
Get #file_num, , bytes()&&
rs!Picture.AppendChunk bytes()&&
Next block_num&&
If left_over & 0 Then&&
ReDim bytes(left_over)&&
Get #file_num, , bytes()&&
rs!Picture.AppendChunk bytes()&&
rs.Update&&
Close #file_num&&
lstPeople.AddItem person_name&&
lstPeople.Text = person_name&&
原文转自:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)在vb6中连接水晶报表使用心得 - VB教程 - CND8学院
热门标签:
您的位置: &
在vb6中连接水晶报表使用心得
  发布日期:日
在VB6中使用水晶报表并动态设置数据源
首先引用Crystal Reports 9 ActiveX Designer Run Time Library再添加Crystal Repotr View Control 9控件在工程资源管理器中右键--添加--Crystal Reports 9 新建一个Crystal Reports9报表设置数据源后将要显示的字段加入报表内。
窗体代码部分:Dim m_Report As New CrystalReport1  '(这个CrystalReport1是你建立的报表的名称)Dim m_Connection As ADODB.Connection '(建立一个ADO连接)Dim adoRS As ADODB.Recordset&&&&&& Private Sub Form_Load()&&& Dim SQL As String&&& Dim strConnect As String&& &&& ' Create and bind the ADO Recordset object&&& Set m_Connection = New ADODB.Connection&&& Set adoRS = New ADODB.Recordset
&&& ' Open the connection&&& strConnect = "你的数据库连接字符串"&&& m_Connection.Open strConnect&&& SQL = "查询语句"&&& adoRS.Open SQL, m_Connection, adOpenDynamic, adLockBatchOptimistic&&& m_Report.Database.SetDataSource adoRS'(动态设置报表数据源)&&&&&&& Screen.MousePointer = vbHourglass&&& CRViewer1.ReportSource = m_Report&&& CRViewer1.ViewReport&&&&&&&&&&&&&&&&&&&&&&&&& '(显示报表)&&& Screen.MousePointer = vbDefaultEnd Sub
显示打印机设置动话框报表名.PrinterSetup Me.hWnd
用代码设置纸张大小&&& 报表名.PaperSize =crPaperA4是否显示右上角水晶报表的图标&&& CRViewer1.EnableAnimationCtrl = Not CRViewer1.EnableAnimationCtrl是否显示导出报表按钮&&& CRViewer1.EnableExportButton = Not CRViewer1.EnableExportButton是否显示关闭按钮&&& CRViewer1.EnableCloseButton = Not CRViewer1.EnableCloseButton是否显示左侧树列表&&& CRViewer1.EnableGroupTree = Not CRViewer1.EnableGroupTree是否显示导航&&& CRViewer1.EnableNavigationControls = Not CRViewer1.EnableNavigationControls是否显示弹出菜单&&& CRViewer1.EnablePopupMenu = Not CRViewer1.EnablePopupMenu是否显示打印按钮&&& CRViewer1.EnablePrintButton = Not CRViewer1.EnablePrintButton是否显示刷新按钮&&& CRViewer1.EnableRefreshButton = Not CRViewer1.EnableRefreshButton是否显示工具栏&&& CRViewer1.EnableToolbar = Not CRViewer1.EnableToolbar是否显示比例调整窗口&&& CRViewer1.EnableZoomControl = Not CRViewer1.EnableZoomControl报表显示的样式&&& CRViewer1.DisplayBackgroundEdge = Not CRViewer1.DisplayBackgroundEdge报表控件是否有边框&&& CRViewer1.DisplayBorder = Not CRViewer1.DisplayBorder是否显示报表的选项卡&&& CRViewer1.DisplayTabs = Not CRViewer1.DisplayTabsvb中调用水晶报表生成的*.rpt文件CrystalReport1.ReportFileName = App.Path & "liuhan.rpt"CrystalReport1.WindowTitle = "打印预览"CrystalReport1.WindowState = crptMaximized '使打印预览窗口最大化********CrystalReport1.Destination = crptToWindow '到窗口***********************'CrystalReport1.Destination = crptToPrinter '到打印机********************CrystalReport1.PrinterDriver = 1CrystalReport1.PrintReport解决水晶报表更新数据后需按刷新问题报表名.DiscardSavedData
此代码在VB6+SP5+Windows2000 Server下调试通过以上代码参考水晶报表9中文版
相关教程:最新教程:VB鼠标事件的编程题目_百度知道
VB鼠标事件的编程题目
鼠标光标具有不同的形状。例如:在文本框和窗体上的鼠标光标使用系统提供的光标形状,则显示相应的信息。要求、一个图片框和一个命令按钮,则用一个信息框显示“现在鼠标光标位于图片框中”,当鼠标光标移到图片框上时,如果按下鼠标右键,此时如果按下鼠标右键,使得当鼠标光标位于不同的控件或窗体上时。编写程序在窗体上画一个文本框,而图片框的命令按钮上的鼠标光标使用自定义的形状
提问者采纳
rivate Sub Command1_MouseMove(Button As Integer.cur&quot:&#92, Shift As Integer, Y As Single)Picture1, Shift As Integer, Y As Single)Text1;)&#39, X As Single, X As Single, Y As Single)If Button = vbRightButton Then
MsgBox &quot.MousePointer = vbCustomEnd SubPrivate Sub Picture1_MouseUp(Button As Integer, Y As Single)Command1, Y As Single)If Button = vbRightButton Then
MsgBox &现在鼠标光标位于命令按钮中&光标文件的路径End SubPrivate Sub Form_MouseMove(Button As Integer, X As Single, Shift As Integer, Shift As Integer, Y As Single)If Button = vbRightButton Then
MsgBox &quot, X As Single.MouseIcon = LoadPicture(&quot.MousePointer = vbCrossEnd SubPrivate Sub Command1_MouseUp(Button As Integer, Shift As IC;End IfEnd SubPrivate Sub Picture1_MouseMove(Button As I现在鼠标光标位于窗体上&quot, Y As Single)Me, X As Single, Shift As Integer.MousePointer = vbHourglassEnd SubPrivate Sub Text1_MouseUp(Button As IEnd IfEnd SubPrivate Sub Text1_MouseMove(Button As Integer, X As Single, Y As Single)If Button = vbRightButton Then
MsgBox &quot, X As SPicture1;End IfEnd SubPrivate Sub Form_Load()'现在鼠标光标位于图片框中&quot, Shift As Integer, X As Single.MousePointer = vbDefaultEnd SubPrivate Sub Form_MouseUp(Button As Ihand, Shift As I现在鼠标光标位于文本框中&quot
提问者评价
来自团队:
其他类似问题
为您推荐:
其他1条回答
。。。是vb
鼠标光标是mousepointer。关键是在某一控件单击鼠标右键显示信息,这个不知道怎么写?在那个事件过程写?
之前我就说了我不知道怎么改光标,但你吧所有的控件都建立mousemove的事件这样的话在图片上移动就检测到图片上有鼠标在移动,然后出发事件如此如此这般这般右键就mouseclick就可以做到了
鼠标的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 vb mousepointer 的文章

 

随机推荐