ms-access


How can I use the database commands 'Seek' and results 'NoMatch'?


Here's my problem:
Let's say I have these tables:
table1
1 - "a"
2 - "b"
table2
1 -
2 -
3 -
Now, I'm using the following code to compare the tables:
table2.MoveFirst
Do While Not table2.EOF
table1.Seek "=", table2!field2
If table1.NoMatch Then
go do a lot of things to find that information
Else
table2.Edit
table2!Field2 = table1!field2
table2.update
End If
table2.MoveNext
Loop
But the line
table2!Field2 = table1!field2
Is not working so well. I'm pretty sure I'm doing something wrong here, but I'm having problems finding a solution. I'm not even sure what I should google...
EDIT: Field 2 is indexed in table 1, so the 'seek' works.
A few notes.
Let us say you want all the records from Table2 where there is no match on a field called Field1:
sSQL = "SELECT Field1, FieldX FROM Table2 " _
& "LEFT JOIN Table1 " _
& "ON Table2.Field1 = Table1.Field1 " _
& "WHERE Table1.Field1 Is Null"
You could, of course, build the query in the query design window and fiddle around until is is just what you want, then switch to SQL view to get the right (ish) SQL string.
Dim rs As DAO.Recordset
Set rs = CurrentDB.Openrecordset(sSQL)
''table2.MoveFirst
Do While Not rs.EOF ''table2.EOF
''You do not need no match, all these records are missing a match
'' table1.Seek "=", table2!field2
'' If table1.NoMatch Then
go do a lot of things to find that information
rs.MoveNext
Loop
''This can all be done with one update query
'' Else
'' table2.Edit
'' table2!Field2 = table1!field2
'' table2.update
'' End If
'' table2.MoveNext
'' Loop
sSQL = "UPDATE Table2 " _
& "INNER JOIN Table1 " _
& "SET table2.Field2 = table1.field2 "
CurrentDB.Execute sSQL dbFailOnerror
Please treat the above as notes, not finished code.
But the line table2!Field2 = table1!field2 Is not working so well
...is not a good description of what goes wrong.
Does the code stop/crash at this line?
Does it run without errors, but do nothing / something else than you expected?
I suppose that you're using DAO Recordsets.
It's hard to give advice without more information, but I'll give it a try:
Is table2 completely empty? Your description looks like this:
table2
1 -
2 -
3 -
If yes, the whole loop is probably never executed at all.
Can the Recordset table2 be updated?
Not all types of Recordsets support this, it depends on how you create it. See MSDN: Recordset Object (DAO), there is a list of Recordset types at the beginning.
If it's not updateable, you should get an error when you call .Update.
If you're using DAO recordsets (as suggested by Christian) you can change the line
table2!Field2 = table1!field2
to
table2.Fields("Field2").value = table1.Fields("field2").value
I'm presuming both Field2's are of Text data type.

Related Links

MS Access, number formatting
Version Control for Access VBA code? [duplicate]
Form Recordset in Access 2007 Returning no data
MS Access MSChart.Graph.8 not printing
Export MS Access Memo field and convert Unicode
Using function from form in Access SQL statement?
How to update an access field w/the date everytime a change is made to its row?
Is Access's AutoNumber (Increment) guaranteed to increment?
VBA Code to Count all Columns that are numeric in ListBox containing SQL Query Results
How to requery a subform from another form?
Is it possible to create a recursive query in Access?
MS Access 2000 Report needs to be PDF format with URL hyperlinks
Deploying Access as a client-server application
Resize form based on if subform visible
MS Access search for record by textbox instead of dropdown
Uniqueness Constraints in MS Access

Categories

HOME
maven
cakephp
ionic-framework
multithreading
blogger
gerrit
urbancode
gremlin
tizen
lodash
dot
vmware
react-router
cvs
programming-languages
razor
spring-cloud-stream
maven-3
sql-server-2016
retrofit
gorm
imacros
modx-revolution
zend-framework3
circular-dependency
fatal-error
contextmenu
firefox-webextensions
jprofiler
custom-wordpress-pages
kryo
physics-engine
ehcache
emgucv
one-to-many
pepper
su
elasticsearch-net
jaxb2
http-get
winrt-xaml-toolkit
perlin-noise
webtest
overlap
sharefile
g-code
http-live-streaming
jvm-languages
android-mediaprojection
s
thin
avconv
theming
typescript1.8
fancybox-2
kbuild
titanium-android
crosswalk-runtime
google-cdn
heidisql
plottable.js
qpid
fuzzy-search
jwplayer7
design-by-contract
unity-networking
prerequisites
wireshark-dissector
angular-local-storage
formatjs
modalpopup
clicktag
typekit
c3
gadt
internet-connection
document-classification
article
funcunit
p4java
jquery-layout
meteor-velocity
algebraic-data-types
viadeo
c18
e4x
nsnetservice
funscript
twrequest
appconkit
uiviewanimation-curve
buildr
code-cleanup
work-stealing
xmemcached
file-comparison
oncheckedchanged
sudzc
ncqrs
avatar
boost-smart-ptr
temporal-database
defensive-programming
post-build
msdev
commodore
ntvdm.exe

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App