Hej har problem med att radera poster ur en databas (access2000) i VB. Hur ser din kod ut? Får du något felmeddelande? Det borde fungera med rsTabell.Delete. Hej min kod ser ut så här: Testa att ändra:Delete RecordSet i VB?
I min kod har jag INGEN Datacontroler utan skriver min koppling själv.
jag har provat med att i en knapp skriva:
rsTabell.Delete
rsTabell.MoveNext
men det verkar inte fungera.....kan någon det?
en annan fråga!
är det en bugg i VB (6.0 sp4) som gör att man inte kan skapa en knapp med funktionen
rsTabell.MovePrevious ?
Dom här fungerar ju MoveNext,MoveFirt,MoveLast
/niclasSv: Delete RecordSet i VB?
/JohanSv: Delete RecordSet i VB?
Private Sub Form_Load()
'**************************************
' Initierar databasobjektvariablerna
'**************************************
Set dbForetag = New ADODB.Connection
Set rsForetag = New ADODB.Recordset
'**************************************
' Ansluter till databsen
'**************************************
With dbForetag
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\liaregister.mdb"
.ConnectionTimeout = 20
.Open
End With
'**************************************
' Kör igång anslutningaen till
' databasen med SQL
'**************************************
Set rsForetag.ActiveConnection = dbForetag
rsForetag.Open "SELECT * From Foretag Order By ForetagsID"
'**************************************
' Visar upp posten i textrutorna
'**************************************
lblForetagsID.Caption = rsForetag("ForetagsID")
txtForetagsnamn.Text = rsForetag("Foretagsnamn")
txtKontaktperson.Text = rsForetag("Kontaktperson")
txtHandledare.Text = rsForetag("Handledare")
txtOrt.Text = rsForetag("Ort")
txtAdress.Text = rsForetag("Besoksadress")
txtTelefon.Text = rsForetag("Telefon")
txtAntalTeknik.Text = rsForetag("Antalteknik")
txtAntalsys.Text = rsForetag("Antalsys")
txtKommentar.Text = rsForetag("Kommentar")
_________________________________________________________
Private Sub cmdDelite_Click()
'**********************************
' Radera poster i databasen
'**********************************
MsgBox "OBS! Du är på väg att ta bort företaget!", vbOKCancel
If Not rsForetag.EOF Then
rsForetag.Delete
rsForetag.MoveNext
End If
'**************************************
' Visar upp posten i textrutorna
'**************************************
lblForetagsID.Caption = rsForetag("ForetagsID")
txtForetagsnamn.Text = rsForetag("Foretagsnamn")
txtKontaktperson.Text = rsForetag("Kontaktperson")
txtHandledare.Text = rsForetag("Handledare")
txtOrt.Text = rsForetag("Ort")
txtAdress.Text = rsForetag("Besoksadress")
txtTelefon.Text = rsForetag("Telefon")
txtAntalTeknik.Text = rsForetag("Antalteknik")
txtAntalsys.Text = rsForetag("Antalsys")
txtKommentar.Text = rsForetag("Kommentar")
End Sub
________________________________________________________
error:
Run-time error '3251':
Object or provider is not capable of performing requested operation
jag fattar inte vad som är fel! vet du det?
/niclasSv: Delete RecordSet i VB?
Set rsForetag.ActiveConnection = dbForetag
rsForetag.Open "SELECT * From Foretag Order By ForetagsID"
till:
rsForetag.Open "SELECT * From Foretag Order By ForetagsID", dbForetag, adOpenDynamic, adLockPessimistic
Som Default öppnas recordsetet med skrivskydd och CursorType = adOpenForwardOnly, det är CursorTypen som gör att du inte kan använda MovePrevious och skrivskyddet som gör att du inte kan ta bort posten.
Du kan givetvis sätta dessa egenskaper separat som du gjorde förut...
Lycka till!
/Johan