今、ADOをコードで設定してプログラムを作成しているのですが、どうしても、UpdateとDeleteをしようとすると、「キーフィールドがNull」というエラーがでます。コードも何度もチェックしましたし、データベース(アクセス2000)のほうもフィールドをチェックしたりしましたが、問題はないのです。一体何が原因で、どのようになおせばいいのでしょうか?
まずフォームロードイベントで以下のように設定(テキストボックス以外にコンボボックスにデータをロードしてます)
Dim strSQL As String
Set conVideo = New ADODB.Connection
Set rsVideo = New ADODB.Recordset
strSQL = "SELECT Studio.[Studio Name], Video.[Movie Number]," & _
"Video.Title, Video.Category, Video.Length " & _
"FROM Studio INNER JOIN Video ON Studio.[Studio ID] = Video.[Studio ID]"
With conVideo
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;Data Source = " & App.Path & _
"VBVideo2000.mdb;Mode = readwrite"
.Open
End With
With rsVideo
.CursorLocation = adUseClient
.Open strSQL, conVideo, adOpenDynamic, adLockOptimistic, adCmdText
End With
Call AssignData
With rsVideo
Do Until .EOF
If ![Movie Number] <> "" Then
cboNum.AddItem ![Movie Number]
cboTitle.AddItem !Title
cboStudio.AddItem ![Studio Name]
cboCategory.AddItem !Category
End If
.MoveNext
Loop
.MoveFirst
End With
そしてAddコマンドボタンで
rsVideo.AddNew
として、Saveコマンドボタンで
rsVideo.Update
としています。Deleteも同様です。
考えられる、原因はなんでしょうか?
> 今、ADOをコードで設定してプログラムを作成しているのですが、どうしても、
> UpdateとDeleteをしようとすると、「キーフィールドがNull」というエラーがでます。
以下を参照してみてください。(別の掲示板ですが、同じ質問への回答です)
http://koz.homeip.net/bbs/show.asp?bodyid=1914
ツイート | ![]() |