2012-06-21 17 views
5

Mam dwa pola w oddzielnych połączonych tabelach z tymi samymi danymi, ale z różnymi typami danych. Nie mogę zmienić typów danych w tabelach. Próbuję kwerendy łączącej dwie tabele razem na podstawie tych danych, ale ponieważ typy są różne, muszę przekonwertować liczbę na ciąg. W zasadzie to próbuję:Wykonywanie instrukcji CStr() wewnątrz instrukcji JOIN

... 
FROM Table1 LEFT JOIN Table2 ON CStr([Table1].[Column]) = Table2.Column 
... 

Po prostu otrzymuję komunikaty o błędach, głównie "Dołączenie do wyrażenia nie jest obsługiwane".

Czy ktoś może rzucić trochę światła na to, co robię źle/co mogę zrobić lepiej?

Dziękuję.

+0

W widoku MS Access widok projektu projektu zapytania jest dość ograniczony. Czy możesz uruchomić się bezpośrednio z okna widoku SQL? – Fionnuala

+0

Tak, edytowałem/uruchomiłem to z widoku SQL. – Tim

+2

Wówczas właśnie wystąpiłeś przeciwko ograniczeniu okna projektu. Będziesz musiał użyć widoku sql, aby zachować swoje zapytanie. – Fionnuala

Odpowiedz

1

tutaj jest klauzula FROM sformatowany:

FROM 
    Table1.Column 
    LEFT JOIN Table2.Column 
    ON CStr([Table1].[Column]) = Table2.Column 

Wskazówka używa Table1.Column i Table2.Column jako źródła danych. A to są kolumny (pola), a nie tabele (rzeczywiste lub wirtualne).

Wypróbuj ten sposób zamiast:

FROM 
    Table1 
    LEFT JOIN Table2 
    ON CStr([Table1].[Column]) = Table2.Column 

dostępu projektant zapytań ma kłopot ze z JOIN, które obejmują funkcje w na ekspresję. Chociaż nie widzę dowodów, które mylą problem z twoim pytaniem, zasugeruję wykluczenie tej możliwości przez wklejenie poniższej instrukcji do okna Natychmiastowego i wykonanie tam.

Set rs = CurrentDb.OpenRecordset(_ 
"SELECT Count(*) AS row_count" & vbCrLf & _ 
"FROM Table1 AS t1" & vbCrLf & _ 
"LEFT JOIN Table2 AS t2" & vbCrLf & _ 
"ON CStr(t1.[Column])=t2.[Column];") : _ 
? rs(0) : _ 
rs.Close : _ 
Set rs = Nothing 

Wskazówka każdy z tych znaków uzupełniających (linia podkreślenia „_”) musi być poprzedzone przestrzeni i nie ma znaków po.

+0

Moje przeprosiny, moje JOIN nie zostało tak sformatowane. Pomyłkowo wpisałem to na pytanie. Został sformatowany we właściwy sposób - który opublikowałeś - przez cały czas i nie działał. – Tim

+0

Właśnie zaktualizowałem swoją odpowiedź. Zdaję sobie sprawę, że to długi strzał. Jeśli jednak instrukcja zwróci rozsądną wartość bez zgłoszenia błędu, musimy zmienić kurs. – HansUp

Powiązane problemy