问题解决了,分还是给你吧,不过为了不误人子弟我还是说下正确答案。
这个问题的重点不是ACCESS是语句用的不对。因为是ACCESS支持的功能不够多,当语句过长时导致出现“查询过于复杂”的错误,这里要将长的文本作为变量输入,正确的语句我贴在下面了:
Try
NewText = “特别长的文本一千万字左右”
Dim AccessConn As New OleDbOleDbConnection(AccessConnectionString)
AccessConnOpen()
AccessString = "UPDATE 记录 SET 文本= WHERE 编号=1"
Dim AccessCmd = New OleDbOleDbCommand(AccessString, AccessConn)
AccessCmdParametersAdd(New OleDbOleDbParameter)
AccessCmdParameters(0)Value = NewText
AccessCmdExecuteNonQuery()
AccessConnClose()
Catch AccessException As Exception
MsgBox(AccessExceptionMessage, , "保存")
End Try
这里的语句是 AccessString = "UPDATE 记录 SET 文本= WHERE 编号=1" 其中是变量,在下面的语句中对变量进行提交,这样就避免了语句过长。
Imports SystemDataOleDb
Public Class Form1
Dim connStr As String = "Provider=MicrosoftJetOLEDB40;Data Source=c:\TSXSmdb;Persist Security Info=False"
Dim conn As New OleDbConnection(connStr)
Dim com As New OleDbCommand("delete from 入库 where 编号='011'", conn)
Private Sub Button1_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles Button1Click
connOpen()
comExecuteNonQuery()
connClose()
End Sub
End Class
测试可用 单引号是查询字段为字符串类型时给内容的前后加单引号 而不是在 表名 或者 字段名前后加
1、增加字段:
CString msql = "ALTER TABLE student ADD COLUMN ziduan char(50)";
mdatabaseExecuteSQL(msql);//添加名为zizhuan的字段到名为student的表中。
2、新纪录:
msqlstr = "INSERT INTO student (学号,姓名,数学) VALUES ('2011','jack','99')";
mdatabaseExecuteSQL(msql);//添加学号为2011,姓名为jack,数学为99的一行记录 到表student中。
3、删除:
CString msql = “DELETE FROM student WHERE 学号 = '2011'”;
mdatabaseExecuteSQL(msql);//删除学号为2011的一行记录。
希望对你有所帮助!
数据源应该是个表,不是某一行,大概是 PPdsTables(0) 。绑定的是字段或者说列,与记录多少没关系。每个数据表都有个记录指针,显示哪一行就移动记录指针到哪一行,绑定控件会自动跟踪并更新指向记录的的绑定字段的值。
在右侧解决方案管理器当前项目上右键(就是在“11”上右键)→添加→现有项→定位到这个项目目录下面的 Form1vb 和 Form1Designervb 上(如果有资源文件还有个 Form1resx),添加。
我跟你说一下C#的思路吧,VB的应该也差不多
首先用SQL语句查询到相应的表的数据,然后放到datatable里,
既然你要动态生成控件,就先在界面上加一个panel,然后:
Button button1 = new Button();
button1Text = datatableRows[i][0]ToString();
//再定义一下button的大小位置之类的
panelcontrolsadd();//最后就是把这个控件加到这个panel中
那就执行一下sql语句
select max(colname) maxvalue,min(colname) minvaluefrom tabname
然后把值取出来
有两种方式:
一是把excel在外部打开
二是把excel按数据库方式打开
你要哪种?哪种方法我都可以写出来。
你最好给我一个电子的样子,那才能有针对性地写出代码。
张志晨
补充:
1、引用Microsoft Excel类型库
“工程”-“引用”-选择“Microsoft Excel 80 Object Library”-“确定”
2、声明显式数据类型,创建新实例并获取Excel的控制句柄
Dim ExcelObject As ExcelApplication
Set ExcelObject = CreateObject( "ExcelApplication ")
3、调用并显示Excel
ExcelobjectVisible = True
4、打开文件,
ExcelObject Open pathName
然后用循环进行判断,那就简单了。因为不知道你到底要判断什么,所以无法写出具体的代码来。
Public xlApp As ExcelApplication
Public xlbook As ExcelWorkbook
Public xlSheet As ExcelWorksheet
Public Function OpenExcel(xlPath As String)
Set xlApp = CreateObject("excelapplication")
Set xlbook = xlAppWorkbooksOpen(xlPath)
Set xlSheet1 = xlbookWorksheets(1)
Set xlSheet2 = xlbookWorksheets(2)
xlAppVisible = fasle
Dim i As Integer
i = 1
'下面的判断是假设的,你要改成你实际需要的
Do While xlSheet1Cells(i, 1)Value =xlSheet2Cells(i, 1)Value
Form1List1AddItem xlSheetCells(i, 1)Value
i = i + 1
Loop
quitExcel
End Function
Public Function quitExcel()
xlAppQuit
Set xlApp = Nothing
Set xlbook = Nothing
End Function
以上就是关于vb.net vb2010 如何使用DAO访问ACCESS数据库,我最终目的是要向ACCESS里写入64k以上的数据。全部的内容,包括:vb.net vb2010 如何使用DAO访问ACCESS数据库,我最终目的是要向ACCESS里写入64k以上的数据。、vb2010 数据库使用ExecuteNonQuery报错。”查询子句不完整。 “、VB2010使用SQL查询ACCESS2010数据库表中“有效期”在当前日期后90天内的记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)