disclaimer - I know NOTHING about writing a service in VB.net
That being said, the two things that are immediately obvious
1) no logging - if you were logging to the the event log you might see what's happening - and, usually, in C#, I'll write a service that runs as a console app first before installing it as a service, so I can log to a console window, debug it 'easier'
2) I may be wrong, but, it doesn't seem like you have connected timer1_Elapsed to timer1 - in c# one would do this
<pre lang="C#">
Timer timer = new Timer();
timer.Interval = 60000;
timer.Elapsed += new ElapsedEventHandler(this.OnTimer);
timer.Start();
So, if you had logging you would see whether or not your timer event is being called - this
https://www.dotnetperls.com/timer-vbnet[
^] suggests
AddHandler timer1.Elapsed, New ElapsedEventHandler(AddressOf timer1_Elapsed)
may be what you need
3) nothing is made known/shown about database credentials etc (again, logging could be useful) - I'm assuming that you're installing your service under an account that has the correct permissions for the database, yes ?
4) design-wise, you don't indicate how much data is to be moved in any 'cycle' .. having worked on large migration projects, we usually use a control table to keep track of records to be moved/migrated, and migrated the records in batches that can be handled by the duty cycle of the timing mechanism- using a control table also gives you an audit mechanism, it really depends on the context of what is being performed - it would seem from a cursory look, that after having inserted records into Table_1 (from Table1 ?? (bad naming)) that the next time around you'll get the same records inserted, because you don't update Table1 for the inserted records to set Table1.[check] to 'something else'