求教两个关于ACCESS数据库的基础问题?
本帖最后由 gzh888666 于 2016-3-10 17:45 编辑麻烦大神们了,目前问题有两个。
1.如何在ACCESS数据表中在已有项的基础上添加或插入一个新的项?
2.如何让自动标号ID COUNTER(1,1) primary key的项值删除后能够按照步进自动重新编号?
搜索了论坛没有找到答案,求助大神能够帮助! 回复 1# gzh888666
這都是SQL 的問題吧 回复 1# gzh888666
ALTER TABLE 表格名稱 ALTER COLUMN 自動編號 COUNTER (1, 1)
改一下自己的表格名稱和自動編號的名稱,最後再執行它,就完成了,試試吧!!^^ 回复 1# gzh888666
按照步进自动编号:
id identity(1, 1) primary key 回复 3# kk_lee69
能给我一段代码吗? ALTER TABLE " & $tblname & " ADD ID ALTER COLUMN(1, 1) primary key这样是无法写入!~ 回复 4# chzj589
能给我一段代码吗? ALTER TABLE " & $tblname & " ADD ID ALTER COLUMN(1, 1) primary key这样是无法写入!~ 回复 6# gzh888666
#AutoIt3Wrapper_UseX64 = n
$adSource = @ScriptDir & "\DB1.mdb"
$adTable = "Table2"
If FileExists($adSource) Then
$addtbl = ObjCreate("ADODB.Connection")
$addtbl.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $adSource)
$addtbl.Execute("CREATE TABLE " & $adTable)
$addtbl.Execute("ALTER TABLE " & $adTable & " ADD id identity(1, 1) primary key,name text(255) ,pass text(255)")
$addtbl.Close
MsgBox(64, "提示", "创建表成功", 5)
Else
MsgBox(64, "错误", "数据库文件不存在", 5)
EndIf 回复 6# gzh888666
#include <Array.au3>
#include <Access.au3>
Global $adSource = 'MyDatabase.mdb'
Global $adTable = "数据库"
Global $DatabasePassword = "admin"
Global $adCol = 'ID identity |第一列 TEXT(255)|第二列 TEXT(255)|第三列 TEXT(255)|第四列 TEXT(255)|第五列 TEXT(255)' ;identity(1, 1) primary key
Global $sFieldNames = "ID|第一列|第二列|第三列|第四列|第五列"
Global $bTF = True
If FileExists($adSource) Then
Else
If MsgBox(52, '提示!', '未检测到数据库,是否立即创建?') = 6 Then
_CreateDB($adSource, $DatabasePassword)
_CreateTable($adSource, $adTable, $adCol, $DatabasePassword)
MsgBox(0, '提示!', '数据库创建完成')
EndIf
EndIf
Func _CreateDB($adSource, $DatabasePassword = '');创建数据库
;=======================函数说明==========
;函数作用:创建 Access数据库
;参数说明:
;1:$adSource = 数据库*.mdb文件路径、
;2:$DatabasePassword = 数据库访问密码(可选)
;=========================================
$oADO = ObjCreate("ADOX.Catalog")
$oADO.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $adSource & "; Jet OLEDB:Database Password=" & $DatabasePassword)
$oADO.ActiveConnection.Close
EndFunc ;==>_CreateDB
Func _CreateTable($adSource, $adTable, $adCol, $DatabasePassword = '');创建表和列
;============================函数说明====================================
;函数作用:创建 表和列
;参数说明:
;1:$adSource = 数据库*.mdb文件路径、
;2:$adTable = 创建表名称、
;3:$adCol = 创建的列,多列以“|”隔开 — 如:第一列|第二列|……
;4:$DatabasePassword = 数据库访问密码(可选)
;=========================================================================
$adCol = StringRegExpReplace($adCol, '\|', ',')
$oADO = ObjCreate("ADODB.Connection")
$oADO.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $adSource & "; Jet OLEDB:Database Password=" & $DatabasePassword)
$oADO.Execute("CREATE TABLE " & $adTable)
$oADO.Close;创建表
$oADO = ObjCreate("ADODB.Connection")
$oADO.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $adSource & "; Jet OLEDB:Database Password=" & $DatabasePassword)
$oADO.Execute("ALTER TABLE " & $adTable & " ADD " & $adCol)
$oADO.Close;创建列
EndFunc ;==>_CreateTable 回复 1# gzh888666
1.如何在ACCESS数据表中在已有项的基础上添加或插入一个新的项?
以下代码可添加或插入一个新列字段:
$adColba = "字段名"
MsgBox(4096, "创建列", $adColba)
$adCol = StringRegExpReplace($adColba, '\|', ',')
$oADO = ObjCreate("ADODB.Connection")
$oADO.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $adSource & "; Jet OLEDB:Database Password=" & $DatabasePassword)
$oADO.Execute("ALTER TABLE " & $adTable & " ADD " & $adCol)
$oADO.Close;创建列
MsgBox(48, "提示", "添加字段成功")
但是添加或插入一个新列字段没多大的用途,因为要添加或修改记录数据不好操作.请问LZ的操作方式? 回复 9# chzj589
主要是数据入库后有时需要增加项目,以前的数据又不能损坏,所以有这个需要,之前我都是手动在数据库里添加,感谢你们的回答,我测试一下。 回复 10# gzh888666
谢谢奖历!
项目只能是添加,要修改项目,我试了还不能成功。
我想问添加项目后,读取数据库记录数据不能显示在GUICtrlCreateListView,添加与修改窗口控件也不能显示操作,因窗口控件无法随数据库添加项目而添加控件? 回复 11# chzj589
我想问添加项目后,读取数据库记录数据不能显示在GUICtrlCreateListView,添加与修改窗口控件也不能显示操作,因窗口控件无法随数据库添加项目而添加控件?
这里应该是你的GUICtrlCreateListView读取方面的问题和数据库本身无关! 要在GUICtrlCreateListView预留:||
$ListView1 = GUICtrlCreateListView("ID|第一列|第二列|第三列|第四列|第五列|第六列 ||||||", 10, 10, 840, 350, $LVS_REPORT, $WS_EX_CLIENTEDGE);, -1, BitOR($WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT, $LVS_REPORT))
$hListview1 = GUICtrlGetHandle($ListView1)
_GUICtrlListView_SetColumn($ListView1, 0, 'ID', 50, 2)
_GUICtrlListView_SetColumn($ListView1, 1, '第一列', 80, 2)
_GUICtrlListView_SetColumn($ListView1, 2, '第二列', 80, 2)
_GUICtrlListView_SetColumn($ListView1, 3, '第三列', 80, 2)
_GUICtrlListView_SetColumn($ListView1, 4, '第四列', 80, 2)
_GUICtrlListView_SetColumn($ListView1, 5, '第五列', 80, 2)
_GUICtrlListView_SetColumn($ListView1, 6, '第六列', 80, 2)
是这样吗?
页:
[1]