Einzelne Spalten löschen

Ich bin Visual Basic Neueinsteiger und kenne mich damit recht wenig mit der Sprache aus und hoffe jemand kann mir helfen.
Ich möchte einzelne Spalten aus einer Tabelle löschen und weiß nicht, wie. Bis jetzt sieht der Code so aus:

Private Sub CleanMaskeBlock()

Dim EingabeMaskeBlockRS As DAO.Recordset
Dim SQL1 As String

Gesellschaft.SetFocus
ges = Gesellschaft.Text

Projekt.SetFocus
Proj = Projekt.Text

PLZ.SetFocus
PLZ = PLZ.Text

Herkunft.SetFocus
Herkunft = Herkunft.Text

SQL1 = „DELETE TrennblechIdentnr, DeckblechIdentnr FROM EingabeMaskeBlock where Gesellschaft= '“ + ges + „’ AND Projekt =’“ + Proj + „‚AND PLZ =‘“ + PLZ + „’ And Herkunft=’“ + Herkunft + „’“

End Sub

Ich will also die Spalten TrennblechIdentnr, Deckblechidentnr löschen für bestimmte Eingaben für Ges.,Proj.,PLZ und Herkunft in einem Access-Formular. Mit diesem Code passier jedoch leider rein gar nichts. irgendwelche ideen?

Hallo,

Ich will also die Spalten TrennblechIdentnr, Deckblechidentnr
löschen für bestimmte Eingaben für Ges.,Proj.,PLZ und Herkunft
in einem Access-Formular. Mit diesem Code passier jedoch
leider rein gar nichts. irgendwelche ideen?

Glück gehabt! Wenn Du Felder aus einer Tabelle löschst, sind die weg. Ganz weg, für immer und für alle Datensätze!

Wenn Du für einen bestimmten Zweck Felder der Tabelle nicht mit anzeigen möchtest, benötigst Du dafür eine spezielle Abfrage und keinen Löschbefehl.

Mir Access-VBA kenne ich mich leider nicht aus, beim Code kann ich Dir nicht helfen. Das wird aber etwa so aussehen:
‚SELECT Feld1, Feld2, Feld4, Feld7 FROM Tabelle WHERE Feld1 > 0 …‘

Gruß, Rainer

Hallo Rainer,

nun, aus dieser Tabelle möchte ich die Datensätze wirklich löschen, denn ich erzeuge diese Einträge anschließend ohnehin aus einer anderen Tabelle (aus dieser kann der Code ja den eintrag nicht löschen, oder?!). Das ganzesoll folgendermaßen ablaufen: wenn es in trennblechidentnr/deckblechidentnr schon einen eintrag gibt, möchte ich, dass diese überschrieben werden. dazu wollte ich sie erst löschen und dann wieder neu generieren. (denn wenn ein falscher eintrag drinsteht bleibt der dort leider bestehen)

Gruß Laura

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

nun, aus dieser Tabelle möchte ich die Datensätze wirklich
löschen,

Du verwirrst mich. Du möchtest zu einer Tabelle immer mal wieder Felder hinzufügen und löschen? Irgendwie habe ich das Gefühl, ich gehe falsch mit Datenbanken um.

Wenn ich mit Datenbanken arbeite, überlege ich mir als Erstes, welche Tabellen mit welchen Feldern ich brauche, lege die in Access an und danach werden die nie wieder geändert. Alles andere läuft über Abfragen.

Wenn Du aus einer Tabelle ein Feld entfernst, ist das ja für alle Datensätze weg. Du entscheidest nach dem Inhalt eines Feldes in einem Datensatz, ob für alle Datensätze dieses Feld gelöscht werden soll? In welchem Fall ist das denn sinnvoll? Ich versteh’s nicht, sorry. :frowning:

Gruß, Rainer

Also, in der Tabelle, um die es geht, werden über ein formular daten eingegeben zu einem bestimmten objekt, zu welchem dann diese identnummern generiert werden sollen. die tabelle ändert sich also ohnehin ständig, darum will ich auch einträgespalten löschen und wieder einfügen. der code benutzt für die erstellung dieser nummern natürlich auch tabellen, die ich nicht ändere. vielleicht könnte man das alles über abfragen machen, ich habe diese datenbank jedoch nicht erstellt, ich mache nur ein praktikum und brigne einangefangenesprojekt zu ende.

mir ist jedoch durch diese diskussion gerade klar geworden, wie das ganze funktioniert, ohne dass man spalten löschen muss.
also vielen dank :smile:

Hallo Lotus,

mal eine kleine Anmerkung. Nehmen wir mal an du hast eine DB mit folgenden Felder!

ID Vorname Nachname
'dazu folgenden Inhalt
1 Alex Meier
2 Laura Muster
3 Rainer Mueller

Nehmen wir an der Datensatz mit der ID 2 soll entfernt werden. Also ID, Vorname und Nachname. So löschst du einen Datensatz!
Willst du dagegen ein Feld löschen. Sagen wir mal Das Feld Vorname. So löschst du es aus der DB!
Danach würde die DB wiefolgt ausschauen

ID Nachname

1 Meier
2 Muster
3 Müller

Erstellst du nun in der DB wieder ein Feld mit dem Namen Vornamen, so würde die DB dann so ausschauen

1 Meier
2 Muster
3 Mueller

Bist du dir sicher das du nun eine Spalte löschen willst oder nur einen Datensatz?

Du hast geschrieben das du einen Datensatz löschen willst und dann wieder eintragen. Hmm, warum editierst du ihn denn nicht ?
Unter VB und Zugriff unter ADO einfach DeinRecordset.Update!

Wie es nun unter DAO geht weiss ich aus dem Stehgreif garnicht.
Aber Alternativ kannst du ihn auch via SQL Statement aendern. Schaue dir dazu mal SQL und Update ( UPDATE Feld
SET Feld = NeuerWert
WHERE Feld = Bedingung; )

Somit machst das alles in einem Ritt und faehrst nicht mit der Kirche ums Dorf :smile:

Aber wie ich das so mitbekomme, hast du noch nicht allzuviel Erfahrung mit DB ? Schaue dir mal folgende Links an

http://v.hdm-stuttgart.de/~riekert/le
http://www.bsro.tue.bw.schule.de/vb/v

MfG Alex