Solved

MS Access - Delete all rows after a certain value for a given column

Posted on 2014-10-20
10
203 Views
Last Modified: 2014-10-25
I have  a table  (which is exported from Excel) .
 I know that the column by name F1 will have the  value starting with "Representation"  . All the rows from that row (including that row)  need to be deleted ( But I don't have the count of rows )

 Can you help me with a  query for this ?  

 Infact ,  This is part of a  Access macro . So  using  VBA also is an option

 Thanks
0
Comment
Question by:Sam OZ
  • 5
  • 3
  • 2
10 Comments
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 40393524
try this delete query


delete * From [Name Of Table]
where [F1] Like "Representation*"
0
 

Author Comment

by:Sam OZ
ID: 40393531
Thanks , But that is not what I am looking for . For example, If the 20th row has the column F1 Like "Representation*" , then all the rows from the row 20 should be deleted

 I get a feeling this need to be done with Recordset . Loop thru RS ..Look for the row . When found delete all the rows from  there as the loop goes thru
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 40393575
for a record there is only ONE row.

the query I posted will delete the records with  "Representation" in the F1 column
0
U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

 

Accepted Solution

by:
Sam OZ earned 0 total points
ID: 40393604
Experts , My approach solves the problem.  
 Loop thru RS ..Look for the row . When found  set a flag and , delete all the rows from  there as the loop goes thru
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 40393647
can you post the codes that you used, so others may learn other ways of deleting records
0
 

Author Comment

by:Sam OZ
ID: 40393711
This is the code .

Private Function DeleteRows(dbobj As dao.Database)
   
   Dim MyRs As dao.Recordset
   Dim MyTableDef As TableDef
   Dim Sql As String
   Dim TableName As String
   Dim PropertyValue As String
   Dim bDeleteFlag As Boolean
   
   For Each MyTableDef In dbobj.TableDefs
     TableName = MyTableDef.Name
     bDeleteFlag = False
    ''Routine to check validity of name
     If IsValidTable(TableName) = False Then
       GoTo NextTable
     End If
     Sql = " select " & SPFPropertyColumnName & " from " & TableName
     Set MyRs = dbobj.OpenRecordset(Sql, dbOpenDynaset)
     While Not MyRs.EOF
        If Not IsNull(MyRs(PropertyColumnName)) Then
          PropertyValue = MyRs(PropertyColumnName)
        Else
         PropertyValue = ""
        End If
          '' Calling function to Check  the propertyvalue starts with Junkvalue
        If CheckStartsWith(UCase(PropertyValue), UCase(JunkValueStart)) = True Then
           bDeleteFlag = True
        End If
               
        If bDeleteFlag = True Then
           MyRs.Delete
        ElseIf PropertyValue = "" Then
           MyRs.Delete          
        End If
       
       
       MyRs.MoveNext
     Wend
     
     If Not MyRs Is Nothing Then
        Set MyRs = Nothing
     End If
     
NextTable:
   Next
   
   
     
 End Function
0
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 40393823
> If the 20th row has the column F1 Like "Representation*" ,
> then all the rows from the row 20 should be deleted

I can't see where this is brought into play.
Your code seems, basically, to do the same as Rey's query.

/gustav
0
 

Author Comment

by:Sam OZ
ID: 40393833
If the rows are like

    =======   START OF ROWS ======================
  Myr1
  Myr2
  ...
 ...

 Myr18

 Representation : This is explaining the obvious
  This is a row after row20
   But the row 21 ,22,23  is blah blah
   So 20,21,22,23 should be deleted.

     =======   END OF ROWS ======================  

    Row 19 is a row with no value .
    The SQL will delete only row 20
    My code will delete row 19 (because it is empty)  , 20,21,22,23
     ( It is because after the Deleteflag is set to true all the  rows are deleted until the end)
0
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 40393844
That is true. Missed that. Thanks.

/gustav
0
 

Author Closing Comment

by:Sam OZ
ID: 40403764
The solution is my previous comment . Comment from the other expert didn't help, unfortunately
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I see at least one EE question a week that pertains to using temporary tables in MS Access.  But surprisingly, I was unable to find a single article devoted solely to this topic. I don’t intend to describe all of the uses of temporary tables in t…
Phishing attempts can come in all forms, shapes and sizes. No matter how familiar you think you are with them, always remember to take extra precaution when opening an email with attachments or links.
Familiarize people with the process of utilizing SQL Server views from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Access…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question