VBA App. Access <> Excel

Pagina: 1
Acties:

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 10-08 08:15

Crazy-

Best life ever

Topicstarter
We ontwikkelen momenteel een access database, welke data oproept vanuit een excel sheet van een leverancier. Dit werkt.

We krijgen data vanuit de excel sheets netjes in de database.

De volgende stap is dat we willen controleren of data (adhv een artikelnummer) al voorkomt in de database, zoja dan moet hij alleen updaten (Andere SQL query).

Nu hebben we in VBA in Excel het programma geschreven, maar we krijgen met geen mogelijkheid een SELECT query werken! (Insert werkt)

code:
1
2
3
4
5
6
7
8
9
Sub Tree_BijKlikken()
    Dim MyDb As Database
    Dim strsql As String
    Set MyDb = OpenDatabase("C:\test.mdb")
    strsql = "SELECT * from test2 where naam = 'crazy'"
    MyDb.Execute strsql, dbFailOnError
    MyDb.Close
    Set MyDb = Nothing
End Sub


Wie o wie kan ons verder helpen?

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Verwijderd

Crazy- schreef op donderdag 23 februari 2006 @ 15:29:

code:
1
2
3
4
5
6
7
8
9
Sub Tree_BijKlikken()
    Dim MyDb As Database
    Dim strsql As String
    Set MyDb = OpenDatabase("C:\test.mdb")
    strsql = "SELECT * from test2 where naam = 'crazy'"
    MyDb.Execute strsql, dbFailOnError
    MyDb.Close
    Set MyDb = Nothing
End Sub


Wie o wie kan ons verder helpen?
Je moet de query niet executen maar je moet er een recordset van maken. Zo werkt het in DAO in ieder geval, maar zo te zijn gebruik je ADO.

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 10-08 08:15

Crazy-

Best life ever

Topicstarter
We hebben iets, maar echt werken nog niet...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub blabla()

Dim db As Database
Dim objquery As QueryDef
Dim strSQL, strWhere, strQuery As String

Set db = OpenDatabase("C:\test.mdb")
strSQL = "SELECT o.productcode " & _
         "FROM test2 AS o " & _
         "WHERE o.productcode = abc"
strWhere = " "

strQuery = strSQL + strWhere
Set objquery = db.CreateQueryDef("productcode", strQuery)

Set rsttmp = db.OpenRecordset("productcode")
If rsttmp.RecordCount = 0 Then MsgBox "Geen producten gevonden", Sc

End Sub

[ Voor 106% gewijzigd door Crazy- op 23-02-2006 16:11 ]

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 20-08 16:21
Kun je iets specifieker zijn? Wat werkt er niet?

Deze code lijkt erg veel op een stuk code wat ik ooit heb gebruikt in een topic hier :p

Volgens mij heb je dit gekopieerd en alleen je query laten staan. Hieronder het stuk wat me voor jou nodig lijkt;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub blabla()

Dim db As Database
Dim strSQL  As String

Set db = OpenDatabase("C:\test.mdb")
strSQL = "SELECT o.productcode " & _
         "FROM test2 AS o " & _
         "WHERE o.productcode = abc"

Set rsttmp = db.OpenRecordset("strSQL")
If rsttmp.RecordCount = 0 Then MsgBox "Geen producten gevonden", Sc
rsttmp.close

End Sub

Nu moet, indien er geen records voldoen aan de where voorwaarde, de msgbox te voorschijn komen

[ Voor 8% gewijzigd door Masch op 23-02-2006 16:27 ]

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 10-08 08:15

Crazy-

Best life ever

Topicstarter
nu krijgen we ....

De Microsoft Jet Database Engine kan de invoertabel of query strSQL niet vinden. Zorg ervoor dat deze bestaat en dat de naam correct is gespeld. (Fout 3078)

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 20-08 16:21
Sorry, mijn fout.

Haal de quotes om strsql weg; db.OpenRecordset(strSQL)

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 10-08 08:15

Crazy-

Best life ever

Topicstarter
opgelost, quote's om de where

strSQL = "SELECT o.productcode " & _
"FROM test2 AS o " & _
"WHERE o.productcode = '5031753001575'"

[ Voor 24% gewijzigd door Crazy- op 23-02-2006 16:37 ]

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 10-08 08:15

Crazy-

Best life ever

Topicstarter
Iemand idee wat we fout doen?

we openen de excel sheet en laten hem controleren of een bepaald veld een waarde heeft, maar nu moet daar een wildcard in:

If Application.Range(C1) = ("NO31*") Then

maar dit werkt dus niet ... procentteken ook niet. Google heeft tot nu toe nog niets opgeleverd, iemand?

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 10-08 08:15

Crazy-

Best life ever

Topicstarter
opgelost...

If Application.Range(C1) Like "NO31*" Then

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu

Pagina: 1