ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
705
705
EMPFEHLEN
-
27.06.05 08:06 #1
- Registriert seit
- Mar 2005
- Beiträge
- 45
Hi,
ich habe folgendes Problem.
Ich möchte eine bestimmte Zeile aus einer Access-Tabelle löschen. Dazu bekomme ich über eine Textbox und eine Combobox 2 Werte. Nach diesen Werten soll die Tabelle durchsucht werden und die entsprechende Zeile gelöscht werden.
Ich habe das Ganze mal folgendermaßen versucht :
Code :1 2 3 4 5 6 7 8 9
Dim deleteCommand As New OleDb.OleDbCommand("delete from Verteilung_SW where Kennziffer = combobox2.SelectedIndex + 1 and Rechner_Nr = Textbox2.text", OleDbConnection1) Try OleDbConnection1.Open() deleteCommand.ExecuteNonQuery() Catch err As OleDb.OleDbException MessageBox.Show(err.ToString) Finally OleDbConnection1.Close() End Try
Ich gehe davon aus das mein SQL Befehl nicht stimmt, ich habe aber über die Suche nur Beispiele für insert-Befehle gefunden, konnte es also nicht selbst überprüfen.
Das Programm meldet mir als Fehler das es entweder die Tabelle oder die Abfrage "Verteilung_SW" nicht findet.
Hoffe mir kann jemand weiterhelfen.
Gruß
Ahnungsloser8000
-
Hallo Ahnungsloser,
versuche es mal so.
Code :1 2 3 4 5 6 7 8 9 10 11
Dim deleteCommand As New OleDb.OleDbCommand("delete from Verteilung_SW where Kennziffer = " & combobox2.SelectedIndex + 1 & " and Rechner_Nr = " & cint(Textbox2.text) , OleDbConnection1) Try OleDbConnection1.Open() deleteCommand.ExecuteNonQuery() Catch err As OleDb.OleDbException MessageBox.Show(err.ToString) Finally OleDbConnection1.Close() End Try
ist aber ungtestet.
Jens
-
30.06.05 08:14 #3
- Registriert seit
- Mar 2005
- Beiträge
- 45
Hi erst mal Danke für die Hilfe.
Also das Feld Rechnernummer muss ein String bleiben, da die Rechnernummern folgendemaßen aufgebaut sind W2KW7777. Die letzten 4 Ziffern sind jeweils eine durchlaufende Nummer. Der erste Teil bringt Infos zum Betriebssystem.
Den Rest habe ich mal an deinen Vorschlag angepasst. Ich bekomme aber immer noch eine Fehlermeldung. Ich schreibe sie mal mit dazu, vielleicht hilft das jemandem den Fehler zu finden.
System.Data.OleDb.OleDbException: Das Microsoft Jet-Datenbankmodul findet die Eingangstabelle oder Abfrage 'Verteilung_SW' nicht.
Stellen Sie sicher, dass sie existiert und der Name richtig eingegeben wurde.
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at DBTest5.Form1.Button5_Click(Object sender, EventArgs e) in D:\VS_Basic_Projekte\DBTest5\Form1.vb:line 936
Ich hatte schon mal ein ähnliches Problem. Da wurde auch über eine nicht auffindbare Tabelle gesprochen, aber die Tabelle existiert definitiv und der Name ist ebenfalls richtig geschrieben. Ich weiß leider nicht wie ich damals den Fehler beheben konnte.
-
04.07.05 07:59 #4
- Registriert seit
- Mar 2005
- Beiträge
- 45
Anscheinend findet niemand eine Lösung zum genannten Problem. Aber vielleicht gibt es auch noch eine andere Möglichkeit.
Kann ich die entsprechende Zeile vielleicht direkt im DataGrid suchen und dort löschen und dann anschließend ein Update auf die Datenbank machen?
Oder hat noch jemand eine andere Idee?
-
Hallo,
wenn das Feld Rechnungsnummer ein String ist dann muss das Delete Kommando so aussehen.
Code :1 2
Dim deleteCommand As New OleDb.OleDbCommand("delete from Verteilung_SW where Kennziffer = ' " & combobox2.SelectedIndex + 1 & " ' and Rechner_Nr = " & cint(Textbox2.text) , OleDbConnection1)
-
04.07.05 14:31 #6
- Registriert seit
- Mar 2005
- Beiträge
- 45
@JensG
Danke für deine Hilfe, ich habe das Ganze jetzt aber auf einem anderen Weg gelöst.
Bin einen Umweg über das Datagrid gegangen.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Dim i As Integer Dim reihenanzahl As Integer reihenanzahl = DataSet11.Verteilung_SW.Count Dim gesReihe As Integer gesReihe = -1 For i = 1 To reihenanzahl If DataGrid3.Item(i - 1, 1) = TextBox2.Text Then If DataGrid3.Item(i - 1, 2) = ComboBox2.SelectedIndex + 1 Then gesReihe = i - 1 End If End If Next If Not gesReihe = -1 Then DataSet11.Verteilung_SW(gesReihe).Delete() schalter2 = False Else MessageBox.Show("BlaBlaBla", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) End If OleDbDataAdapter3.Update(DataSet11, "Verteilung SW")
Werde bei Gelegenheit trotzdem noch mal den anderen Weg versuchen.
Gruß Ahnungsloser8000
Ähnliche Themen
-
Daten aus einer Datenbank löschen
Von port29 im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 13.03.09, 01:48 -
Datensätze aus Access Datenbank löschen
Von skeleton5 im Forum .NET DatenverwaltungAntworten: 0Letzter Beitrag: 08.11.07, 19:18 -
Access Datensatz in einer Datei schreiben und die ältere löschen
Von muhi im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 29.03.07, 13:17 -
Suche in einer Access Datenbank
Von Knuddel im Forum Visual Basic 6.0Antworten: 7Letzter Beitrag: 20.01.06, 17:16 -
Access SQL Datenbank löschen
Von cfl2si im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 24.03.05, 10:37





Zitieren
Login





